仅读取带有while循环的行的第一个字符 #包括 #包括 int main() { char ch; 整数计数; 而((ch=getchar())!='#') { //如果('\n'==ch) //继续; printf(“%c\n”,ch); 返回0; }

仅读取带有while循环的行的第一个字符 #包括 #包括 int main() { char ch; 整数计数; 而((ch=getchar())!='#') { //如果('\n'==ch) //继续; printf(“%c\n”,ch); 返回0; },c,C,用于输入,如“abc/n” 如果使用out if语句,则只打印第一个字符并退出while循环。 使用if语句时,它也只打印第一个字符并停留在while循环中。 为什么只打印第一个字母?为什么即使我没有输入“#”也要退出while循环?如果不想向屏幕显示反馈,请使用getch而不是getchar。但这是非标准API #include <stdio.h> #include <stdlib.h> int main() { char ch; int count;

用于输入,如“abc/n”
如果使用out if语句,则只打印第一个字符并退出while循环。 使用if语句时,它也只打印第一个字符并停留在while循环中。
为什么只打印第一个字母?为什么即使我没有输入“#”也要退出while循环?

如果不想向屏幕显示反馈,请使用
getch
而不是
getchar
。但这是非标准API

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char ch;
   int count;
   while ((ch = getchar()) != '#')
{
//if('\n' == ch)
//continue;
    printf("%c\n",ch);
    return 0;
}

应该在while循环之外,而且您缺少了main函数的结束括号。

发布的代码在循环体中有
返回0;
。发布的代码无效,甚至无法编译。
getchar
返回一个
int
,而不是
char
,原因很充分!结果不适合
char
(除非两种类型的范围相同)。“它只打印第一个字符并退出while循环”+
printf(“%c\n”,ch);返回0;
==有意义,代码打印然后退出。建议将
return
语句移到循环外部。
return 0;