我正在尝试制作一个神奇的8球,为除“再见”以外的任何输入提供随机预设答案。每次调用 void 函数 magic8ball() 时,它都会生成一个 0 - 19 之间的随机数,并将相应的响应输出到控制台。
int main()
{
string question;
cin >> question;
while (question != "bye") {
magic8ball();
cout << "~Ask another question.\n";
cin >> question;
}
return 0;
}
由于某种原因,如果问题的输入有多个单词/字符之间有空格,则在再次请求输入之前,循环将重复每个单词。我卡了一个“咕噜咕噜”
>hi frend
... Ask again later
hi
~Ask another question.
... Don't count on it
frend
~Ask another question.
如何防止while循环将字符串视为一系列单词?为什么cin没有和magic8ball()和cout一起触发?
标准::cin
在看到空格时停止读取。空格也算作空格。
如果您希望字符串有空格,请使用标准::获取线()
int main()
{
string question;
std::getline(std::cin, question);
while (question != "bye") {
magic8ball();
cout << "~Ask another question.\n";
std::getline(std::cin, question);
}
return 0;
}
问题内容: 我的代码中有一个小问题。我正在尝试反转单词和字符串的字符。例如,“狗跑了”将变成“ ehT神纳尔” 该代码几乎可以正常工作。它只是不添加空格。你会怎么做? 问题答案: 您走在正确的轨道上。主要问题是一个空字符串,而不是一个空格(即使您解决了这个问题,您可能也不想在最后一个单词之后留一个空格)。 这是您可以更简洁地执行此操作的方法:
我必须定义一个包含大写方法的Translator类。该方法将收到一个StringBuffer,它只包含英文字母和空格,并将更改它,以便每个单词都以大写字母开头。 //我需要定义的类
问题内容: 我似乎无法在此方法中找到for循环所需的语法。我想遍历字符串中的单词。 编辑:要注意的一件事是cardArray是ArrayList。 问题答案: 你可以用 在每个空格字符(U + 0020) 上分割。 或者: 这会分割每个空格字符序列(包括制表符,换行符等)。
我刚开始学习Java,我遇到了这个问题:我有一个无限的 while 循环,它创建了一个通过套接字发送的消息;目前,在从队列中轮询许多元素并读取它们之前,不会发送消息。 我的目标是在N秒后发送消息,而不是等待到达MAX_MSG_TO_SEND…有可能做到吗?还是我将继续这种方法?
问题内容: 我被困在我应该声明一个称为“ phrase”的字符串变量的部分,该变量不应一直循环播放。 让您知道我的任务是:与选项1相似,不同之处在于用户在输入第一队的结果后输入“ N”(而不是“ Q”)。然后,程序输入第二个团队名称及其结果,直到输入“ Q”。输出两个语句,例如选项1中的语句,然后输出第三条语句,该语句说明哪个团队处于第一位(基于点数) 输入样例: 样本输出: 更新 : 我的代码:
问题内容: 我正在尝试使程序执行以下操作: 假设我们有一个被设置为的被叫。我想输出给用户,每个单词的第一个字符。我尝试使用该方法,但是没有成功。 我的代码: 我试图检测是否有空格,那么我可以简单地获取下一个索引。谁能告诉我我在做什么错? 问题答案: 尝试按(空格)分割,然后获取每个单词的(第一个字符)并按如下方式打印: