【发布时间】:2011-09-11 02:29:01
【问题描述】:
请告诉我我在这里做错了什么。我想做的是:
1.有四个数字的txt文件,每个数字有15位:
std::ifstream file("numbers.txt",std::ios::binary);
我正在尝试将这些数字读入我的数组:
char num[4][15];
我想我正在做的是:只要你没有到达文件末尾,就将每一行(最多 15 个字符,以 '\n' 结尾)写入 num[lines]。但这有点行不通。首先它只正确读取第一个数字,其余只是“”(空字符串),其次 file.eof() 似乎也不能正常工作。在我在此代码下方显示的 txt 文件中,我达到了等于 156 的行数。这是怎么回事?
for (unsigned lines = 0; !file.eof(); ++lines)
{
file.getline(num[lines],15,'\n');
}
所以整个“例程”看起来是这样的:
int main()
{
std::ifstream file("numbers.txt",std::ios::binary);
char numbers[4][15];
for (unsigned lines = 0; !file.eof(); ++lines)
{
file.getline(numbers[lines],15,'\n');// sizeof(numbers[0])
}
}
这是我的 txt 文件的内容:
111111111111111
222222222222222
333333333333333
444444444444444
附言
我正在使用 VS2010 sp1
【问题讨论】:
-
你是认真的吗?
getline工作不正常?难以置信! -
@Vlad 我只是不确定,可能是我在做某事,但我不知道在哪里。