5

我正在编写一个读取文件然后将其作为字符数组发送到另一个类的 C++ 程序。因为字符数组只能通过指针传递,所以所有大小都会丢失。

它将读取的文件将是一个文本文件。文本文件是否为空终止?

最好我不想使用 Vector,因为我真的不需要它的任何功能,而是数组的大小。

4

4 回答 4

8

不。
文件具有已知长度,因此它们不需要任何终止符字节。

于 2013-07-10T13:27:32.263 回答
4

没有文本文件不是 NULL 终止的。我认为您需要检查 EOF(文件结尾)

cin.eof()

是您正在搜索的内容。如果到达文件末尾,则返回 true。

于 2013-07-10T13:27:39.720 回答
1

不,他们不是。但是许多从文件中读取字符串的 C/C++ 函数将零终止附加到返回的数据。

于 2013-07-10T13:31:02.683 回答
-1

使用 eof 而不是查找空字符...例如:

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream iFile("myfile.txt");   // myfile.txt has integers, one per line
while (!iFile.eof())
{
int x;
iFile >> x;
cerr << x << endl;
}
return 0;
}
于 2013-07-10T13:36:36.753 回答