作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在阅读 C 语言书籍,并且坚持执行以下代码...正如我所展示的 C 代码一样,我正在使用 for() 循环来获取字符。与我使用 for 循环打印的方式相同屏幕上的字符...如果用户按下 Enter 键,循环将退出,另一个用于在屏幕上打印的 for() 循环将使用 i 变量的值。但屏幕上的结果却相反。我可以听听您的意见吗?我该如何解决?
#include <string.h>
#include <stdio.h>
int main()
{
int i;
char msg[25];
printf_s("Type up to 25 characters then press Enter..\n");
for (i = 0; i < 25; i++)
{
msg[i] = getchar();// Gets a character at a time
if (msg[i] == '\n'){
i--;
break;// quits if users presses the Enter
}
}putchar('\n');
for (; i >= 0 ; i--)
{
putchar(msg[i]);// Prints a character at a time
}putchar('\n');/*There is something wrong because it revers the input */
getchar();
return 0;
最佳答案
输入后变量i
保存 msg
中的确切字符数。这就是为什么有 i--
语句,以便当您输入 ab<enter>
时你会得到 i==2 而不是 i==3。
第二个循环向后计数到 0,这不是您想要的。您需要从 0 数到 i
反而。现在你不能使用 i 来数到 i。您需要两个变量:一个用于保持最大值,另一个用于进行实际计数。
我将让您自行决定如何具体操作,因为这是学习的一部分。
关于c - 使用loop_in_C 一次获取一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29422584/
我是一名优秀的程序员,十分优秀!