因为你输入的不是数字,而你定义的又是数字类型的所以会出现上面的问题,在输入的时候在一个判定就可以了
就像上面的那个程序。我如果输入的是3,程序会提醒我重新输入。但我输入的如果是字符。就会一直打印下面那句话,陷入了死循环。这样程序就没了。。
scanf返回值是成功赋值的数据项数,你可以这么改:
while(scanf("%d", &choice)!=1 || (choice !=1 && choice!=2))
printf("\n输入错误,请重新输入:“);
这样,如果输入字符,scanf返回为0,同样满足while条件,进入循环体输出下面那句话。
还是不行,你自己运行试试。和我上面那个程序是一样的问题,当输入的是字符时,就陷入死循环。我截图你看看.
sorry,忘记缓存里还有东西了。改成这样:
while(scanf("%d",&choice), fflush(stdin),choice!=1&&choice!=2)
printf("\n输入错误,请重新输入:");
用fflush清理一下缓存。
我知道。所以我才要想解决这个问题,当输入不是数字的时候可以继续输入,直到输入是数字为止
c语言中要求输入数字,但当输入是字符的时候就会出现乱的,是什么原因...
include <stdio.h>#include <stdlib.h>int main(){ int choice; while(scanf("%d",&choice)) { printf("choice==%d\\n",choice); } system("pause");}因为你输入的不是数字,而你定义的又是数字类型的所以会出现上面的问题,在输入的时候在一个判定就可以了 ...
...的屏幕输入数字一开始不会出现,过一会会把输入的数字全部出现,有点...
有多种情况会发生这种现象,不过这种情况常见于安全软件对程序的检测,从而保护操作系统。其原理大概是:当C语言编译运行程序时,安全软件会起到保护系统的功能,会自行对该程序进行无显示的扫描检测。这种对程序扫描的操作是看不到的。判断方法:退出安全软件(包含系统自带的安全软件和第三方安全软件),至...
...中的数据并输出时有乱码出现?本来输入的是数字,然后从文件中读取后...
估计是你文本的存储格式问题。重新另存为一份UTF-8格式的文件。UTF-8编码格式中的数字占用一个字节。而ANSI或其他字符是占用两个字节的。
C语言中输入数字时却输入了字母的容错问题
do { printf("请选择你需要操作的步骤(1--9):\\n");if(!scanf("%d",&n)){ printf("\\n您输入有误,请重新选择!\\n");fflush(stdin); flag = 0;} if(n>=1 && n<=9) \/*判断输入数字的合法性*\/ { flag = 1;break;} break;\/\/<---这里有个break,当然只能一次 }while(flag...
C语言,要求只能输入数字,输入其它的会提示错误,重新输入
这个 很简单 int main (void){ int i,r;printf ("请输入一个数字: ");r=scanf ("%d", &i);if(r==0)printf("输入错误,重新输入");else printf ("%d",i);return 0;} 有不懂的问我。
c语言: 下面的这段代码,输入一个数字->按回车,然后用printf输出这个数字...
那个换行是你自己发出的,你输入4以后是不是要回车程序才会继续呢。如果不想他换行就别用scanf,用getchar
C语言编程出现汉字输出乱码现象
C语言中一个汉字是由两个字节来表示的 而C语言编程主要是以字节为单位来显示 所以你的C语言输出中,如果汉字显示只显示了一个字节,就会有乱码出现了 正常的做法是,你的printf输出时,符号的长度要为偶数字节。
C语言,用SCANF输入一数字结果输入数字后不小心带有字母,判断并不会报...
字符型的数据在内存里是按他的ascll的2进制码来存储的,也就是说字符型的数据在内存里是和整形一样的,所以可以相互赋值(int给char 型不能越界)不会出错。
c语言 如何做到只能输入数字,输入其他的,比如字母。就会提示重新输入...
include <string.h> include <stdlib.h> include<cctype> \/\/here int main(){ while(true){ char s[20];int num = 0,n,len,i;i=0;printf("请输入一个整数 : ");gets(s);len = strlen(s);for(i=0;i<len;i++){ if (!isdigit(s[i]))break;} if(i==len){ printf("您...
c语言控制输入的只能是数字,输入其他的就提示错误,
include <stdio.h>int main(){char a;scanf("%c",&a);if(a>='0'&&a<='9')printf("Right\\n");elseprintf("Error\\n");}