我正在编写一个C ++程序,它读取文件,然后将其作为字符数组发送到另一个类。因为字符数组只能通过指针传递,所以所有大小都会丢失。
它正在阅读的文件将是一个文本文件。文本文件是否以空值终止?
最好我不想使用Vector,因为我真的不需要它的任何功能,只需要数组的大小。
答案 0 :(得分:8)
没有。
文件具有已知长度,因此它们不需要任何终结符字节。
答案 1 :(得分:4)
没有文本文件没有NULL终止。你需要检查EOF(文件结束) 我想
cin.eof()
是你正在寻找的。如果到达文件末尾,则返回true。
答案 2 :(得分:1)
不,他们不是。但是许多C / C ++函数从文件中读取字符串会将返回数据的零终止附加。
答案 3 :(得分:-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;
}