输入流函数在c ++中获取

时间:2015-12-28 06:11:53

标签: c++

我对C ++中的输入流函数get有疑问。 那些是相同的:

第一个是:

ifstream infile ; 

char ch ; 
infile.get(ch);

第二个是:

int c ; 


ifstream infile ;

c= infile.get();

请澄清这两种用途之间的区别。 谢谢。

1 个答案:

答案 0 :(得分: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未经修改。