关于 c :有没有办法使用 cin 在同一行上分配多个字符串?
Is there any way to assign multiple strings on the same line using cin?
我刚刚开始学习 C,我已经进行了一些谷歌搜索,但似乎无法找到可靠的答案。
无论如何都可以使用 cin.
在同一行输入多个字符串变量
例如,假设您希望某人在同一行输入名字和姓氏,然后将它们分配给变量名和姓氏。
除了多行并提示他们两次之外,你会如何做到这一点?
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <string>
#include <iostream> using namespace std; int main(){ string firstname; cout <<"Please enter your first name: \ cin >> firstname; cout <<"Please enter your last name: \ cin >> lastname; cout <<"Your full name is :" << firstname <<""<< lastname; return 0; } |
相关讨论
-
std::cin >> firstname >> lastname; ? -
您不应该使用
std::cin 来接受来自标准输入的字符串。请改用std::getline 。 - @Ron 为什么不呢?对我来说似乎是教条。
- @Ron 为什么?我的意思是特别是如果 OP 希望用户可以在一行中输入名字和姓氏。
- 注意:在一行中阅读它可能会模棱两可,因为理论上名字或姓氏可以由多个单词组成。
-
@Ron 这就是 OP 想要的
Firstname Lastname 。std::getline 将如何解决那里的问题? - @Ron 确实有一点:例如路德维希·范·贝多芬。
-
@Bathsheba 是的,但这不是
std::cin 与std::getline 而是 OP 希望在一行中阅读它的一般问题。而std::getline 也无济于事。
有可能:
|
1
2 3 4 5 |
std::string firstname, lastname;
std::cout <<"Please enter your full name:\ "; std::cin >> firstname >> lastname; std::cout <<"Your full name is :" << firstname << ' ' << lastname; |
由于
相关讨论
- 谢谢!虽然现在我有点困惑。使用 getline 提到的一些评论。这样做有什么好处吗?
-
@BlueTeam 如果名字或姓氏可能是多个单词,则使用
std::getline 更合理。这是因为对于像 "Ludwig van Beethoven" 这样的名字,std::cin 会将 "Ludwig" 读作名字,将 "van" 读作姓氏。如果你确定这样的事情不会发生,std::cin 是完全可以接受的。 - 感谢您的详细解释,它真的很有帮助!
- @BlueTeam 请接受答案。
假设你只想使用cin函数,你应该试试;
抱歉,有任何语法问题。
编辑:我应该提到我的意思是引号内的格式,如输入名字、空格、姓氏。
相关讨论
-
std::cin 不是函数。它是一个对象。std::cin >> firstname; 调用函数operator<<(istream&, std::string&) 。 - 啊,是的,抱歉。我从来不知道!谢谢。