你的c语言过关吗?

 1 #include <stdio.h>
 2 int main(void) 
 3 {
 4     char c;
 5     
 6     scanf("%c", &c);
 7     while (c != 'J') {
 8         printf("No!\n");
 9         scanf("%c", &c);
10     }
11     return 0;
12 }

 对scanf()的认知不足。

我见过某网站的C语言视频教程里的教师写了一个这样的程序(上)

然后他发现程序有问题,输入除J外的字母后会出现两行的No!,当

时他不知道怎么回事,没有办法,就打马虎眼过去了。

你知道怎么修改这个错误吗?

我见过很多人改,大多数人都是加了好长的代码。

其实呢,只要把scanf("%c", &c);改成scanf(" %c", &c);,这样就忽略了之前的空白字符,问题就被解决了。

如果你不知道怎么回事,说明你的C语言学得不扎实。

我自豪 我是一名软件工程师。
原文地址:https://www.cnblogs.com/pipicfan/p/2607545.html