如题所述
scanf():通过格式控制符%s输入字符串。除了字符串,scanf()还能输入其他类型的数据。scanf()读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。
gets():直接输入字符串,并且只能输入字符串。gets()认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对gets()来说就是一个完整的字符串。换句话说,gets()用来读取一整行字符串。
扩展资料
scanf()和gets()的使用:
#include<stdio.h>
intmain(){
charstr1[30]={0};
charstr2[30]={0};
charstr3[30]={0};
//gets()用法
printf("Inputastring:");
gets(str1);
//scanf()用法
printf("Inputastring:");
scanf("%s",str2);
scanf("%s",str3);
printf("\nstr1:%s\n",str1);
printf("str2:%s\n",str2);
printf("str3:%s\n",str3);
return0;
}
参考资料来源:百度百科—gets
参考资料来源:百度百科—scanf
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-12-01
%s,可以输入一串字符,数字、特殊符号、英文都通用
第2个回答 推荐于2017-12-15
%d可以输出int类型的整形数字
%f可以输出float类型的浮点型也就是小数数字
%c可以输出字符比如英文字母、汉字、特殊字符和数字
还有%lf、%ld等可以去了解一下。
C语言中用scanf控制输入,printf控制输出。
比如我定义了一个变量int a;
如果对a进行赋值,就用到了scanf,具体语句:scanf("%d",&a);
如果要对a进行输出,就要用到printf,具体语句:printf("%d",a);
观察上面两个语句,共同点都是有个引号引号里面是格式控制字符,这个要和你前面定义的int保持一致(如果是float a,那么就用%f)。不同的是scanf后面用&a,这个&可以读作and,是地址符,输入的时候必须在变量前面加上(如果不加,编译不会出错但是运行的时候会犹豫内存分配等问题而强制退出等),printf直接写变量就可以了。本回答被网友采纳
%f可以输出float类型的浮点型也就是小数数字
%c可以输出字符比如英文字母、汉字、特殊字符和数字
还有%lf、%ld等可以去了解一下。
C语言中用scanf控制输入,printf控制输出。
比如我定义了一个变量int a;
如果对a进行赋值,就用到了scanf,具体语句:scanf("%d",&a);
如果要对a进行输出,就要用到printf,具体语句:printf("%d",a);
观察上面两个语句,共同点都是有个引号引号里面是格式控制字符,这个要和你前面定义的int保持一致(如果是float a,那么就用%f)。不同的是scanf后面用&a,这个&可以读作and,是地址符,输入的时候必须在变量前面加上(如果不加,编译不会出错但是运行的时候会犹豫内存分配等问题而强制退出等),printf直接写变量就可以了。本回答被网友采纳
第3个回答 2012-11-30
printf??追问
是的
追答我晕,你这是要问什么
看这个吧