有一个TXT文件,每行三个数字,排列如下,用fstream类的read函数读进字符数组里面,怎么总是错位的?
发布网友
发布时间:2022-04-24 00:24
我来回答
共2个回答
热心网友
时间:2023-10-15 09:20
对于这种有确定格式的文本文件,一般不用read成员函数来读取(read一般用于二进制文件),可以使用提取符(>>)直接将所需的值读入相应的变量。比如,这段代码:
char ch[6];
while(!FileInput.eof())// ,i<2
{
FileInput.read(ch,6);
std::cout<<ch[0];
}
可以改为:
int a,b,c;
FileInput >>a >>b >>c;
while(!FileInput.eof())// ,i<2
{
cout <<a <<endl;
FileInput >>a >>b >>c;
}
这样,a就是第1列数据,b就是第2列数据,c就是第3列数据。
热心网友
时间:2023-10-15 09:21
因为FileInput.read(ch,6)没有读完一行,每次只读入6个字节。
如果改成每次完整读完一行,你可以改成:
string line;
getline(FileInput, line);
cout << line[0];
热心网友
时间:2023-10-15 09:20
对于这种有确定格式的文本文件,一般不用read成员函数来读取(read一般用于二进制文件),可以使用提取符(>>)直接将所需的值读入相应的变量。比如,这段代码:
char ch[6];
while(!FileInput.eof())// ,i<2
{
FileInput.read(ch,6);
std::cout<<ch[0];
}
可以改为:
int a,b,c;
FileInput >>a >>b >>c;
while(!FileInput.eof())// ,i<2
{
cout <<a <<endl;
FileInput >>a >>b >>c;
}
这样,a就是第1列数据,b就是第2列数据,c就是第3列数据。
热心网友
时间:2023-10-15 09:21
因为FileInput.read(ch,6)没有读完一行,每次只读入6个字节。
如果改成每次完整读完一行,你可以改成:
string line;
getline(FileInput, line);
cout << line[0];