我对C ++中的输入流函数get有疑问。 那些是相同的:
第一个是:
ifstream infile ;
char ch ;
infile.get(ch);
第二个是:
int c ;
ifstream infile ;
c= infile.get();
请澄清这两种用途之间的区别。 谢谢。
答案 0 :(得分:4)
来自:http://en.cppreference.com/w/cpp/io/basic_istream/get
1)读取一个字符并返回(如果可用)。 否则,返回
Traits::eof()
并设置failbit
和eofbit
。2)读取一个字符并将其存储到
ch
(如果可用)。 否则,ch
未经修改,并设置failbit
和eofbit
。
在您的情况下,上面的(1)对应于代码的第二个块,上面的(2)对应于代码的第一个块。
高亮显示的文字中显示的两者之间的差异是ch
发生的事情。在第一种情况下,Traits::eof()
被分配到ch
。在第二种情况下,ch
未经修改。