有一个TXT文件,每行三个数字,排列如下,用fstream类的read函数读进字符数组里面,怎么总是错位的?
11122132143215216217118219111011想把第一列的提出来,用了下面的代码:#include"stdafx.h"#include<string>#...
1 1 1
2 2 1
3 2 1
4 32 1
5 2 1
6 2 1
7 1 1
8 2 1
9 1 1
10 1 1
想把第一列的提出来,用了下面的代码:
#include "stdafx.h"
#include <string>
#include <fstream>
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
fstream FileInput;
FileInput.open("D:\\W.txt",ios::in);
if(!FileInput)
{ cout<<"D:\\W.txt不?能¨¹打䨰开a!ê?"<<endl;
return 0;
}
char ch[6];
while(!FileInput.eof())// ,i<2
{
FileInput.read(ch,6);
std::cout<<ch[0];
}
FileInput.close();
}
还有其他问题,如果能帮助解决,再送200分答谢。
不能打开那里是复制过来时形成的乱码,有高手愿意帮忙的话请站内信密下 展开
2 2 1
3 2 1
4 32 1
5 2 1
6 2 1
7 1 1
8 2 1
9 1 1
10 1 1
想把第一列的提出来,用了下面的代码:
#include "stdafx.h"
#include <string>
#include <fstream>
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
fstream FileInput;
FileInput.open("D:\\W.txt",ios::in);
if(!FileInput)
{ cout<<"D:\\W.txt不?能¨¹打䨰开a!ê?"<<endl;
return 0;
}
char ch[6];
while(!FileInput.eof())// ,i<2
{
FileInput.read(ch,6);
std::cout<<ch[0];
}
FileInput.close();
}
还有其他问题,如果能帮助解决,再送200分答谢。
不能打开那里是复制过来时形成的乱码,有高手愿意帮忙的话请站内信密下 展开
2个回答
展开全部
对于这种有确定格式的文本文件,一般不用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列数据。
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列数据。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询