使用ostream operator <<打印字符串时,为什么空格不作为分隔符?

Roh*_*n A 1 c++ string iostream delimiter

我知道在编写代码时std::cin >> some_var;,some_var是一个字符串变量,只输入输入的第一个字some_var.但我不明白为什么std::cout << "something here";不输出"东西".我错过了什么吗?

Naw*_*waz 6

当使用读取输入时cin >> some_var,默认情况下分隔符是空格(尽管可以更改),而在打印时,cout打印直到找到\0字符串结尾.

如果你想读取直到它\0在输入流中找到,那么你要写这个:

std::getline(std::cin, some_var, '\0');
Run Code Online (Sandbox Code Playgroud)

您可以将任何其他字符作为分隔符作为std::getline函数的第三个参数.

请注意,有一个具有相同名称的成员函数,getline它与我上面使用的免费独立函数略有不同.

相比:

我使用了第一个.

  • 这是最具技术意义的答案:) (2认同)