如何正确使用 std::cin.get() 和 std::cin.peek() 的返回值?

问题描述

我一直这样使用 peek(),get()

int main(){

    std::string str;
    int value{};
    if(std::isdigit(std::cin.peek()))
       std::cin >> value;
    else
       std::getline(cin,str);

    std::cout << "value : " << value << '\n';
    std::cout << "str: " << str << '\n';

}

许多 C++ 网站和论坛都在使用这种东西:

while(std::cin.peek() != '\n)
    ; do somthing
  • 但是在阅读了有关 C++ 入门的说明后,我感到很困惑。据说这些函数 get(),peek() 返回的是 int 而不是 char,所以我们不能将结果分配给一个字符,而是分配给一个 int

  • 据说字符先转换为unsigned char,然后提升为int

那么我该如何正确使用这些功能呢?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)