我正在编写一个C++程序,该程序读取文件并将其作为字符数组发送给另一个类。由于字符数组只能通过指针传递,因此所有的大小信息都被丢失了。
将要读取的文件将是一个文本文件。文本文件是否以空字符结尾?
最好不要使用向量,因为我确实不需要它的任何功能,只需要数组的大小。
将要读取的文件将是一个文本文件。文本文件是否以空字符结尾?
最好不要使用向量,因为我确实不需要它的任何功能,只需要数组的大小。
文件有已知的长度,因此它们不需要任何终止字节。
文本文件没有NULL终止符。你需要检查EOF(文件结束)。
我认为可以这样理解。
cin.eof()
这是您正在查找的内容。如果已到达文件结尾,它将返回true。
eof
标志,因此如果您在循环条件中检查eof
,那么您将多循环一次。 - Some programmer dude使用 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;
}
NULL
结尾的。你可以通过读取文件的函数/方法在缓冲区中追加,或者维护另一个变量来保存长度。 - VoidPointerstd::vector
在后台执行的内存管理将为你节省很多麻烦。 - Pete Becker