2015-12-28 22 views
0

我有一个关于输入流函数获取在C + +的问题。 那些是相同的:输入流函数获取在C + +

第一个是:

ifstream infile ; 

char ch ; 
infile.get(ch); 

第二个是:

int c ; 


ifstream infile ; 

c= infile.get(); 

请澄清这些两个用途之间的差。 谢谢。

+1

[此'std :: istream :: get'参考](http://en.cppreference.com/w/cpp/io/basic_istream/get)可能对您有所帮助。 –

+2

你看过[参考文档](http://en.cppreference.com/w/cpp/io/basic_istream/get)吗?你不理解文档/例子中的什么?你是返回类型是'int'和'char'暗示你已经隐约意识到不同之处.... –

回答

4

来源:http://en.cppreference.com/w/cpp/io/basic_istream/get

1)读取一个字符,如果可用返回。 否则,返回Traits::eof()并设置failbiteofbit

2)读取一个字符并将其存储到ch(如果可用)。 否则,叶子ch未修改,并设置failbiteofbit

就你而言,上面的(1)对应于你的代码的第二块,(2)对应于你的代码的第一块。

两者之间的区别以突出显示的文字显示,ch会发生什么情况。在第一种情况下,Traits::eof()被分配到ch。在第二种情况下,ch保持不变。