社区
C++ 语言
帖子详情
cin重定向到文件后, 为什么文件最后一个字符要读两遍?
skymartin
2008-02-19 10:55:31
#include <iostream>
using namespace std;
int main()
{
char c;
while( !cin.eof() )
{
cin >> c;
cout << c << endl;
}
return 0;
}
文件ins.txt包含下面内容:
ab
运行这个程序(Fedora)
./main < ins.txt
输出:
a
b
b
为什么最后一个'b'要读两遍呢?
...全文
176
6
打赏
收藏
cin重定向到文件后, 为什么文件最后一个字符要读两遍?
#include using namespace std; int main() { char c; while( !cin.eof() ) { cin >> c; cout << c << endl; } return 0; } 文件ins.txt包含下面内容: ab 运行这个程序(Fedora) ./main < ins.txt 输出: a b b 为什么最后一个'b'要读两遍呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
techq
2010-03-03
打赏
举报
回复
#include <iostream>
using namespace std;
int main()
{
}
taodm
2008-02-19
打赏
举报
回复
while( !cin.eof() )
{
cin > > c;
cout < < c < < endl;
c = 'x';
}
yuanchuang
2008-02-19
打赏
举报
回复
我感觉已经说得比较清楚了:)
skymartin
2008-02-19
打赏
举报
回复
我想问的是为什么最后一个字符读了两遍, 不是找另外一个alternative.
yuanchuang
2008-02-19
打赏
举报
回复
读到结尾,还要再读次cin.eof()才为真,而这最后一次,没有读取到数据,保存的是上次读取的数据。
所以在你看来读取了两次,呵呵。
taodm
2008-02-19
打赏
举报
回复
while( cin > > c)
{
cout < < c < < endl;
}
把键盘输入变成
字符
流,存入
文件
(1)把测试类中的数据来源改写为
字符
串输入流,写
一个
Example1类演示从键盘输入数据。 (2)写
一个
调用测试类的Example2。使用
重定向
cin
,从磁盘
文件
test.data读入测试数据
C++ 输入输出流
重定向
到外设
C++ 标准输入输出模块,为
字符
流操作提供了便捷的途径,软件开发当中,尤其是嵌入式系统开发当中,有时候需要把流信息重新定向到特定的端口,如串口,以太网,USB等。如标准输入输出cout,
cin
默认将
字符
流定向到...
网管教程 从入门到精通软件篇.txt
INT:中间代码,当
一个
源程序经过语法检查后编译产生
一个
可执行代码 IOF:Findit文档 IQY:Microsoft Internet查询
文件
ISO:根据ISD 9660有关CD-ROM
文件
系统标准列出CD-ROM上的
文件
ISP:X-Internet签字
文件
...
C++ 语言
64,678
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章