这是使用std :: cin.get()的正确方法

时间:2019-01-12 09:10:12

标签: c++

经过多年的C ++编程,我从未研究过std::cin.get()的这两种用法的区别,并且不了解这两种方法中的哪一种是检索char的正确方法。

char character;
std::cin.get(character);

vs

char character;
character = std::cin.get();

1 个答案:

答案 0 :(得分:1)

char character;
character = std::cin.get();

并不理想,因为std::cin.get()返回int,这是为了允许您通过测试ch来检查文件结尾或其他错误

int ch = std::cin.get();
if (ch != EOF)
{
    ...
}

替代方法测试cin本身是否存在文件结尾或错误

char ch;
if (std::cin.get(ch))
{
    ...
}

据我所见,这两者之间的区别只是样式问题,尽管第二种方法在类型unsigned charsigned char上已重载,这对您很重要。