c++文件读写的一个小问题

int bianma[500];
ifstream inf("codefile.txt");if(!inf)cout<<"wrong";
for(int j=0;j<x;j++)
inf>>bianma[j];
inf.close();
文件里面是数字010110111为什么读不进数组里面?

看你的程序似乎是要把010110111这个“数”一位一位地存到bianma[]中, 如果是这样, 那么这个程序有几个问题:
① 文件是流的方式打开的, 就是说文件内容如何, 取决于你的程序的解读。 010110111对程序而言,更像是字符串, 你按int读取, int有范围限制, 转换后, 被读成1011011, 前面的0被舍去, 后面的1被舍去, for循环其实只读了1次。 因此最起码, 你的数字直接应该用空格分开,即: 0 1 0 1 1 0 1 1 1 那么for循环会执行9次, 分别读入bianma[0]~bianma[8]。
② 对流的读取操作, 一般应该是while(!inf.eof()) {....} 这种方式的, 很少用for, 因为一般是读到流的尾巴, 自然结束。 即使要记数, 也是while里面作的。
③ 对文件的处理, 应该尽量都按字符串按行读取, 然后再作处理, 转换也好, 还是其它的转存。 这样最安全。 因此要事不该格式, 你应该:
...
int bianma[500];
char sline[128] = "\0";

ifstream inf("new_codefile.txt");

if (!inf)
{
cout << "wrong" << endl;
return (1);
}

while (!inf.eof())
{
inf.getline(sline, 128);
.... // if sline[0] is digital -> bianma[0] ....

}
inf.close();
...
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-17
我想问这是怎么通过编译的......x的定义在哪里......
第2个回答  2012-11-17
用inf.read
第3个回答  2012-11-18
这个程序的定义是什么,而且那个数你再看看是不是超出定义的范围了

c++文件读写的一个小问题
看你的程序似乎是要把010110111这个“数”一位一位地存到bianma[]中, 如果是这样, 那么这个程序有几个问题:① 文件是流的方式打开的, 就是说文件内容如何, 取决于你的程序的解读。 010110111对程序而言,更像是字符串, 你按int读取, int有范围限制, 转换后, 被读成1011011, 前面的0被...

(c++)二进制文件读写问题?
write函数里的这个const就是write这个函数的作者防止自己出错而加入的,这是一种习惯,而且调用者一看const也知道这个参数是只读的,如果这个参数变化了,肯定不会是这个函数引起的。几乎所有的c\/c++库都遵循这一习惯 read这个参数就不能加const,因为这是从文件读数据写入到buffer里,那buffer自然不能是只...

C++中文件中汉字的读写问题
input_file)return 1; output_file.open("2.txt"); while(input_file.get(ch))\/\/空格回车都能读取 { output_file.put(ch); } input_file.close(); output_file.close(); return 0;}

C++的文件读写,为什么这个程序运行有时候对,有时候又会出错?
你这么做肯定是有问题的,sizeof(pe) 或sizeof(People) 获取的并不是写入实际数据的长度, 而只是People的长度, 这个长度是固定的。正确的做法可以通过两种方式来处理:1、 通过重载流输出\/输入流 ostream& operator << (ostream& os, People& p) { \/\/ people 转换成公有成员, 或在类中friend...

C++文件读写题目求大神指导,题目如下:
open" << endl;exit(-1);}for (int i = 0; i < N; i++) {file >> number[i];}file.close();file.open("Res.dat", ios::out | ios::binary);if (!file) {cerr << "File cannot be open" << endl;exit(-1);}for (int i = 0; i < N; i++) {file.write(...

c++从txt文件读取字符串输出时乱码
i];for(i=0;i<504;i++)cout<

c++ 二进制文件读写问题,用write写入时没有问题,但是用read读出时程序出...
欢迎采纳 写的时候 struct student { char name[20];int num;int age;char sex;};读的时候 struct student { string name;int num;int age;char sex;};当然不对了 都改成 struct student { char name[20];int num;int age;char sex;}; 就正确了 ...

C++中用二进制文件读写遇到问题。。。求解答
不可以,除了基本类型,自定义的类类型必须自定义其读写文件的操作。切记!!!而这一点请参考《数据结构与算法-C++版(第三版)》\/Drozdek等编著,郑岩等译

c++里读写文件函数i_file.good()使用问题,代码如下
这是一个很经典的问题了。while(i_file.good())和while (!i_file.eof())存在同样的问题,你到网上搜一下“C\/C++文件之eof()”,就明白怎么回事了。注意最后一段话:“2. 读取文件过程中,读取非char型时,使用peek判断文件尾将不再适用,循环判断条件应改用>>操作符进行读取,若读入char型...

c++ 读写文件问题,VS2010C++
fopen 应该以读写方式或者只读方式打开文件。fread只读了文本文件中1个char类型的数据到b中,而printf中%s表示的是字符串而不是char。话说一般是while循环读到EOF标记的

相似回答
大家正在搜