【发布时间】:2015-08-14 10:13:10
【问题描述】:
例如,我有一个名为 Bjarne.txt 的文件,其中包含整数:
16 2 3 4
我已经编写了一个程序来读取文件中可用的整数并在控制台窗口中将它们输出给我,但是,我正在尝试使用 cin.unget() 并由此了解它的实际作用,这里是源代码:
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream ifs("Bjarne.txt");
int a;
for(int i = 0;i<4;++i){
ifs>>a;
cout<<endl<<a;
if(i==0){
ifs.unget();
}
}
输出是:
16 6 2 3
为什么是这样的输出? (应该是16 2 3 4),只有当我把 ifs.unget() 放入程序时才会出现,所以我的问题是,使用 I/O 文件时 cin.unget() 的目的是什么,为什么是数字6(作为 16 的一部分)输出?
提前感谢您的帮助。
【问题讨论】:
-
当您不了解
cin.unget()的作用时,为什么还要尝试使用它?你为什么不阅读它的文档来找出答案? -
那么,你得到答案了吗?