【发布时间】:2021-12-05 05:22:53
【问题描述】:
我目前正在学习如何编写代码,提示用户在骰子游戏中定义他们想要的玩家数量和回合数,另外的目标是将两者的结果输出到文件中。我看到的一些资源在定义字符串变量时建议,您需要一个辅助字符串,其唯一目的是“吞噬换行符”。
这是我正在查看的代码的 sn-p:
int main()
{
int nPlayers, nRounds, score;
**string name, dummy;**
cout <<"Enter number of players: ";
cin >> nPlayers;
cout << "Enter number of rounds: ";
cin >> nRounds;
**getline (cin, dummy); // gobble up newline**
ofstream ofs ("scores.txt");
ofs << nPlayers << " " << nRounds << endl;
我的问题是基于用双星号表示的两条线。为什么要写这样的字符串?
【问题讨论】:
-
因为否则它不会被消耗,如果有下一个循环,下一个循环将获取它而不是下一个值。
-
这意味着将输入末尾的额外换行符显式读取到虚拟中。狼吞虎咽 = 吃掉然后让它消失,所以它不是技术或 C++ 词,只是人类语言:)
-
@PepijnKramer:谢谢你们的回复。我觉得有点傻,我没有意识到它是多么直截了当和字面意思。出于某种原因,我认为 gobble 是一个常用过程或其他东西的俚语,因为它是一个如此罕见的词,并且在三个不同的领域中看到它用于描述同一事物?是的,我绝对想仔细检查一下。谢谢你们的意见!