初学者遇到的奇怪小问题
程序代码:
#include <stdio.h> void main () { printf ("请输入密码\n"); char a; scanf ("%c",&a); while(a!='zxc') { printf("错误"); scanf("%c",&a); } printf ("欢迎"); }这个小程序,调试一下会出现未声明a的报错,但是删去【printf ("请输入密码\n");】就没有报错了。请问这是为什么呢?
#include <stdio.h> void main () { char a; printf ("请输入密码\n"); scanf ("%c",&a); while(a!='z') { printf("错误"); scanf("%c",&a); } printf ("欢迎"); }我只能说这段代码在运行的时候,如果第一次输入的是a,则会输出两个“错误”,至于为什么,我就不解释,我不确定我的解释是正确的,所以不多说,免得误导你,帮你顶一下,希望版主能对我提出的“为什么”感兴趣
#include <stdio.h> void main(void) { char a; printf_s("请输入密码: "); fflush(stdin); printf_s("%d ", scanf_s("%c", &a, 1)); printf_s("%c,%x\n", a, a); while (a != 'z') { printf_s("错误\n"); printf_s("请输入密码: "); fflush(stdin); printf_s("%d ", scanf_s("%c", &a, 1)); printf_s("%c,%x\n", a, a); } printf_s("欢迎"); fflush(stdin); getchar(); }