c++,文件流,为啥文件能打开也会继续循环呢?

是因为mytable定义在外面吗?

ifstream读到eof后本身也失效了,所以最后判断的!mytable还是true。可以考虑把while里的条件改为true,然后读取完毕后直接break。
温馨提示:内容为网友见解,仅供参考
无其他回答

c++,文件流,为啥文件能打开也会继续循环呢?
ifstream读到eof后本身也失效了,所以最后判断的!mytable还是true。可以考虑把while里的条件改为true,然后读取完毕后直接break。

c++,文件流,为什么有时候最后一行会重复输出,有时候又不会呢?
估计原因是:数据文件最后一个记录是否以回车换行结束。如果换行了,最后记录读取后,还要读取一次,结果什么都没有读到,只返回了eof,导致内容不可用。可以考虑这样处理:在读取每行记录之前,将姓名字符串数组首变量赋值为0,然后在读取后显示前判断姓名字符串是否为空,为空则跳过不显示。

c++中使用文件流打开文件为何多出一个最后的字符 例如我使用ofstream...
此时,文件还有最后的空格,还没到文件结束,while循环当然还会继续 第四次循环,读到空格之后文件结束,获取a失败,a 的值依然是第三次成功读取的残留值33(这是不应该输出的哦,因为读失败了)让你又给打印出来了,然后,第5次循环发现文件已经到达结尾,循环结束 所以,你多了个33 ...

c++文件操作 在构造函数中文件已经打开了 为什么读不进数据 非要重新在...
cout << "open file fail" << endl;exit(1);} }

c++用system打开文件后,不关闭打开文件怎么继续操作程序
{ if (!argv[1]) { std::string command="type main.cpp|";command += argv[0]; command += " be_file";std::system(command.c_str());} else { char ch = 0;while (std::cin.get(ch)) std::cout.put(ch);} } 一个例子,用的是type main.cpp|main.exe be_file 把...

C++ 文件流无法打开文件会是什么原因?
你说打开失败..我想可能是你打开的方式出了问题...C++的对文件的读写都是流的形式,采用的是二进制方式读写的,而文本文件则不一样,他是一个字符一位来的,称之为文本形式,所以在C++打开类似文本文件的时候,需要用匹配的读写方式打开,否则将导致打开文件的一个变量变化,导致其他文件也打不开,...

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

C++中如何打开文本文档这样就不用一个一个输了
1.可以使用c语言中的fopen 比如 FILE *fp=NULL;fp=fopen("test.txt","r"); \/\/第一个参数为你想打开的文本文档的完整路径,第二个是读写操作标 识,只要成功打开文件,你就可以通过操作fp来读取内容或者向文件中写入内容 2.可以用c++的文件流的方式打开 输入文件流类:ifstream 输出文件流...

c++文件读写的一个小问题
① 文件是流的方式打开的, 就是说文件内容如何, 取决于你的程序的解读。 010110111对程序而言,更像是字符串, 你按int读取, int有范围限制, 转换后, 被读成1011011, 前面的0被舍去, 后面的1被舍去, for循环其实只读了1次。 因此最起码, 你的数字直接应该用空格分开,即: 0 1 0 1 ...

C++ 为什么while(! iofile.eof() )读取文件会出现死循环
eof() 函数本身,并不到输入流里去取数,不去读取文件。单用 while(!iofile.eof()); 由于没有别的读语句去读文件,而自身又不会去读取文件,只是不断地判断 iofile的 EOF 标志位状态,那就永远是 "没有读到EOF". 死循环。中国教科书 一脉相承,爱用 while(!fp.eof()) { 读,打印;}...

相似回答