问题描述
- c语言一个关于scanf的问题
-
代码一
scanf("%d",&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/
scanf("%d",&y); /*若此时输入的是字母而不是数字,比如输入“s”并回车*/
/*那么变量y将不会接收到任何字符或数字,其值保持原样,不发生任何改变*/
scanf("%c",&a);请问代码一中的s为什么会被a接收?输入的是字母而不是数字的话,应该等待用户
代码二
#include
int main()
{int x,y;
scanf("%d",&x);
scanf("%d",&y);
printf("%d%d",x,y);
return 0;
}代码二中 如果输入:s 1
为什么两个出来都是乱码?1难道没有被x或者接受吗?
解决方案
被a接收?哪里来的a,如果输入s,那么y在此之前是多少就是多少。
为什么两个出来都是乱码
因为x y都没有被接收。而x y又没有初始化。所以是随机的。
解决方案二:
C语言scanf()函数返回值的问题
C语言中scanf的问题
C语言中关于scanf()函数返回值问题
解决方案三:
%d 是要求读入一个整数,如果输入字符就会出错。
解决方案四:
%d 是要求读入一个整数,如果输入字符就会出错。
解决方案五:
c是指的字符型 d指的整型 如果你要把你一个整型变量强制输出成字符型 那么就会得到符号 如果把字符型的强制输出成整型得到的是他对应的ascii码的序号
解决方案六:
C语言%d是整数的输出形式
时间: 2024-09-14 01:00:41