【发布时间】:2012-09-10 04:58:30
【问题描述】:
我看到有类似标题的东西已经回答了,但是内容对我来说太密集了,因为我不太了解c++。
我对编程很陌生,我不知道如何在我的 while 循环中存储以前的迭代。我正在尝试使用 while 循环将用户文本写入文件,并以两个 \n 字符结束他们的输入。这就是我的问题所在,因为在我当前的代码中,输入以一个 enter 实例结束。
我的代码看起来像这样,但我知道temp 和new_advice 是一样的:
char new_advice, temp;
while( (!(new_advice == '\n' + '\n'))) && (!(temp == '\n')) )
{
temp = new_advice;
cin.get(new_advice);
fout.put(new_advice);
}
编辑* 好吧,我想我不清楚我在问什么。
最初的任务是“允许用户输入建议,这样它可以是任意数量的行。用户被告知通过按两次返回键来结束他或她的建议。然后你的程序可以测试到通过检查它何时读取两个连续出现的字符 '\n' 来查看它是否已到达输入的末尾。”
这会改变我的问题的任何答案吗?
我现在已经尝试用代码做到这一点:
char new_advice;
int temp = 0;
while(temp < 2)
{
if(new_advice == '\n')
{
temp = temp++;
}
cin.get(new_advice);
fout.put(new_advice);
}
但这也不起作用,我的程序无法将 enter 识别为结束程序。整个程序的上下文是否值得发布?
【问题讨论】:
-
第一个明显的问题:
'\n' + '\n'不会创建包含两个换行符的字符串。'\n'将产生一个整数值,然后将其加倍,所以如果它是 10,结果将是一个值为 20 的单个字符。 -
另一个明显的问题:在将
new_advice和temp设置为任何特定值之前,您正在测试它们的值(使用==)。在读取变量之前,您应该始终设置变量(即使只是一些恰好与您的逻辑一起使用的任意起始值,例如空格或'\n')。
标签: c++ loops while-loop