C++文件eof()函数的小细节
代码段:
#include<bits/stdc++.h>
using namespace std;int main()
{ifstream ifile("date.txt", ios::in);char s[100] = {0};if (ifile){int i = 0;for (char c ; !ifile.eof(); ++i){ifile>>c;s[i] = c;}}cout<<s<<endl;return 0 ;
}
文件如下:
运行结果:
原因可能是ifile.eof()。
这样就好了:
#include<bits/stdc++.h>
using namespace std;int main()
{ifstream ifile("date.txt", ios::in);char s[100] = {0};if (ifile){int i = 0;for (; !ifile.eof(); ++i){ifile>>s[i];}}cout<<s<<endl;return 0 ;
}
文件保持不变:
之前失败的原因:
1.最后一次循环写入到c失败了,c没有更新,还是把值传给s[i]了。
2.eof()读的是eofbit,这个东西在操作流的时候才会被置位。通俗来讲,你在里面读了一次数据,失败了之后才会给你置位。所以这个其实是访问上一次操作的状态。
也就是为什么之前的程序会重复输出了。
(向DL求助后得到答案)
C++文件eof()函数的小细节相关推荐
- xml文件c语言读取函数,读写xml文件的2个小函数
#region 读写xml文件的2个小函数,2005 4 2 by hyc public void SetXmlFileValue(string xmlPath,string AppKey,strin ...
- 判断文件结束的几种方法和eof()函数
看下面一段代码: ofstream ofs("a.txt"); int n = 1; while (--n) { //不进入循环体 ofs<<n<&l ...
- 【c++基础】判断是否到文件末尾-eof函数
前言 读取文件内容时,需要判断是否到文件末尾,此时用到eof函数. 函数定义 Check whether eofbit is set Returns true if theeofbiterror st ...
- C++文件操作之eof函数问题
关于eof函数 fstream / ifstream / ofstream 类中的 成员函数eof()用来检测是否到达文件尾,如果到达文件尾返回非0值,否则返回0.原型是int eof(); 在使用这 ...
- c++文件读写函数eof()会错误的问题
问题描述: 当用eof()函数判断文件有没有读完的时候,往往会多读一次. 问题如下所示,文件f2.dat里面只有10个数据.读出来11个,并且多输出一个不存在的数. 读数函数块: fstream fs ...
- python文件定位函数_C语言中文件定位函数总结
C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...
- 如何用C语言改变宏定义的大小,C语言中宏定义使用的小细节
C语言中宏定义使用的小细节 #pragma#pragma 预处理指令详解 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#p ...
- C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)
C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...
- C语言中文件定位函数总结
C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...
最新文章
- 列名无效怎么解决_电脑win键失效怎么办? 键盘win键无效的解决办法
- 用Windows Live Writer在51CTO写博客(2018年2月24日更新)
- 这样就可以很方便的知道明天的天气了
- python第三天課程:int, bool, str
- 闫智宣的开发版_Android
- NLP领域的首次Hard Label黑盒攻击!
- 幼谈苹果新开发语言:Swift和苹果的用心
- java解析ceb文件_什么是Java的平台无关性
- Aqua Data Studio 执行HiveSql的问题
- 三星为什么能超越SONY在世界崛起?
- LeetCode 714. 买卖股票的最佳时机含手续费--动态规划
- 嵌入式开发之 STM32自行车码表(图文)
- 简述人工智能发展的先决条件
- threejs LOD
- android文件删除工具下载,Coolmuster Android Cleaner下载
- Unbuntu环境编译 Android平台可用ffmpeg(带三方库fdk-aac和lame)
- ubuntu20.04安装向日葵
- Windows系统安装绿色版MySQL8
- 【现代密码学】仿射密码加密
- Swift之代码优化