c++ - C++ 中的一行用户输入赋值

标签 c++ string cin

我正在学习 C++,想知道是否有相当于将用户输入分配给一行中的变量的方法,就像在 C# 中所做的那样:

字符串 foo = Console.ReadLine();

我希望其中之一能够发挥作用,但事实并非如此。

const string foo = cin >> foo;

cin >> const string foo;

理想情况下,变量应该是常量,但这不一定是要求。

有没有办法用 C++ 来衬托它,或者我只需要学会忍受这个?

double foo = 0;
cin >> foo;

最佳答案

正如苹果苹果所说,你可以编写自己的函数

double console_read_double()
{
    double x = 0.0;
    cin >> x;
    return x;
}

int main()
{
    double y = console_read_double();
    double z = console_read_double();
    ...
}

然而,C++ 方式的一个优点是您可以链接对输入函数的调用

int main()
{
    double y, z;
    cin >> y >> z;
    ...
}

您无法通过返回读取值的函数调用来做到这一点。

另一个优点是可以用一行代码测试操作成功或失败

int main()
{
    double y, z;
    if (cin >> y >> z)
    {
        // success
    }
    else
    {
        // handle error
    }
}

关于c++ - C++ 中的一行用户输入赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74446719/

相关文章:

c++ - 错误 : enum was not declared in this scope

string - 连接所有参数并用双引号引起来

C++ 空格标记 cin 中的输入结束?

如果列结果为空,则 C++ SQLite 停止错误

c++ - 如何使用 std::ends 覆盖 std::ostringstream 中的字符串?

java 分割字符串并只保留特定单词之后的所有内容

c++ - 我如何在不中断行的情况下在 C++ 控制台中写入文本

c++ - cin >> 对较大的数字失败但对较小的数字有效?

c++ - Qt 4.8.0 - 未列出 MySQL 驱动程序

java - 如何遍历一个字符串