00问答网
所有问题
C语言求解 main() {int a;char c1; scanf("%4d%3c",&a,&c1); printf("%d,%c\n",a,c1);}
诺输入“123456,abc<回车>",结果是1234,5为什么?
举报该问题
推荐答案 2013-05-31
问题出在 "%4d%3c" ,%4d限制 int a只取了4位“1234”;char只占1B,所以只取了‘5’,这个5是作为字符型输入的,剩余内容还在输入缓冲区里,如果这时你再进行输入操作,可能陷入死循环;
scanf语句“ ”中除了格式占位符外最好不要加其他任何东西,更不要对输入进行限制,因为在输入缓存区被读空前进行输入操作一般都会出错
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/jjjnBnenj.html
其他回答
第1个回答 2013-05-31
scanf("%4d%3c",&a,&c1);//因为这句
改为
scanf("%d %c",&a,&c1);
第2个回答 2013-05-31
%号后面是长度设置
相似回答
C语言
关于
scanf
函数问题
答:
第一个问题,因为你的
scanf
函数使用了域宽来指定读入的格式。所谓域宽,就是说读入的时候把某个宽度内的值付给某变量。那么。你第一个参数读入规则是
%3c,
意思是设置域宽为3,读入一个
char
型数据。你输入的是abcde。那么前面的abc将作为第一个参数给一个char型数据。而char型数据只需要一个字符,所以a...
C语言
题目
,求解
答
答:
scanf(
"%c%c%c"
,&a,&
b
,&c);printf(
"%c %c %c\n",a-32,b-32,c-32);return 0;} include <stdio.h> int
main(){
char
a,b,c;a=getchar();b=getchar(
);c
=getchar();printf("
%3c%3c%3c
\n",a-32,b-32,c-32);return 0;} include <stdio.h> int main(){ char a,...
麻烦大家看个程序
答:
scanf(
"
%3c
%2c"
,&c1,&
c2)这个的功能是读入两个字符,所以你输入abcde,程序只读入了前两个其他的丢弃,%c是读入单个字符你写成这样%3c也只能读入一个字符。
printf(
"%3c%2c\n",c1,c2);这句就是格式化输出所以你输出的a前有两个空格,d前有一个空格 而去你想要输入的数据类型也不跟c1,c2一...
C语言
输入输出问题
答:
在%后面的字母表示了输入或者输出的类型,c表示要读入的数据类型为字符型。在%与字母之间的十进制数表示一个最大的宽度,也就是说
%3c
表示,这个字符,占3个字符的宽度。换句话说,就是这3个字符的宽度只有一个有效字符。由于你要读入的字符型变量只占用一个字符宽度,所以第一个读进来是第一个字母,...
大家正在搜
c语言int转char
unsigned char
java char转int
unsigned int
有如下程序maininta33
c语言char怎么用
char main
设有说明char w;intx
int转string
相关问题
C语言求解 main() {int a;char c1; s...
C语言intmain() { char a; do{ sca...
C语言有个费解的小问题
c语言问题 #include "stdio.h" int m...
急急急!!!在线等C语言scanf函数scanf("%c%c...
C语言 求详细过程: main() { char a,b,c...
一道C语言题
c语言中scanf("%d%*c", &n);是什么意思