扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
首先说一下, 这道题目的答案是:C
创新互联专注于曲周网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供曲周营销型网站建设,曲周网站制作、曲周网页设计、曲周网站官网定制、小程序定制开发服务,打造曲周网络公司原创品牌,更为您提供曲周网站排名全网营销落地服务。
接下来我们了解下 scanf (...) 函数
函数原型 :
int scanf(const char * restrict format,...);
1、函数 scanf() 是从标准输入流stdin (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
2、函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
返回值 :
scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
如:scanf("%d %d",a,b);
1、函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;
2、如果只有a被成功读入,返回值为1;
3、如果a和b都未被成功读入,返回值为0;
4、如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d。
由上面的知识点可以,输入位置的变量应该是要写成指针类型的(表示取地址)。
int 类型取址是用的是n, 而char c[5]是数组类型,其地址本身就是 c(同时也是数组名)。
如果以上对你有帮助,请采纳一下, 谢谢。
1)输入单个字符:getc,getchar,getch(不会在屏幕显示输入字符)
2)
输出单个字符:putc
3)
输入一串字符(可以有空格,Tab
等):
gets
4)
输出一串字符(可以有空格,Tab
等):
puts
5)
标准输入:scanf(可以输入数字,字符,字符串等。输入以空白字符分割)
6)
标准输出:printf(可以格式花输出数字,字符,字符串等。)
文件输入输出:
在上面的输入输出函数(除了
getchar,getch)前面加上
f,比如fgetc,fputc,fscanf,fprintf,就是文件输入输出函数了。
2.putchar() getchar() 输出输入函数只针对单个字符的操作。3.puts(),gets() 输出输入函数可以单个字符操作(但是功能有限的),主要是针对字符串操作。 下面我们定义int a用scanf("%d",a)可以获取整型a的值,a=getchar(),gets(a)无法从键盘获取数字用printf("%d",a)可以打印数字a的值,putchar(a),puts(a)没法打印数字方面:printf()和scanf()胜char a用scanf("%c",a) 可以获取字符a的值,用a=getchar()能获取a的值,用gets(a)不能获取用printf("%c",a)可以打印字符a的值 用a=getchar()可以打印a的值,用puts(a)不能打印字符方面:getchar()和putchar()第1 scanf()和printf()第2 gets和puts()败补充:puts()和gets()能接收和打印单个字符只限制变量是数组变量例如 char a[50]; gets(a); put(a);你输入一个字符就会打印一个字符但如果是字符变量 char a='x'; char a; puts(a); 或 gets(a); puts(a);就无法运行char a[50]用scanf("%s",a)能获取数组a的值,用a=getchar()无法获取,用gets(a)能获取a的值用printf("%s",a)能打印数组a的值 用putchar(a)无法打印,用puts(a)能打印a的值字符串(数组)方面:gets()和puts()第一,scanf()和printf()第2,getchar()和putchar()败可见scanf()和printf()什么都能实现,但对字符和字符串操作没有其他两种好getchar()和putchar()对字符操作优势明显,但不能操作数字变量,字符数组变量gets()和puts()对字符串操作优势明显,但也不能操作数字变量,字符变量scanf()和printf()格式输入输出能同时按格式一起输入输出字符,数字,字符串这是其他两种不能比的所以程序以scanf()和printf()为主,其他两种作为辅助,发挥各自的长处。最后来个总结,用程序表示#include stdio.hmain(){ char a,b[50]; printf("请输入第一个字符:\n"); scanf(" %c",a); getchar(); //获取前面的回车 printf("第一个的字符为:%c\n",a); printf("请输入第二个字符:\n"); a=getchar(); printf("第二个字符为:"); putchar(a); putchar('\n'); printf("请输入第一个字符串:\n"); scanf(" %s",b); getchar(); //获取前面的回车 printf("第一个的字符为:%s\n",b); puts("请输入第二个字符串:"); gets(b); puts("第二个字符串为:"); puts(b); }
scanf 函数最主要的用法是:
scanf("输入控制符", 输入参数);
功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。
用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。
如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'\0'。
扩展资料:
使用scanf()函数需要注意的问题:
1.对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上""操作符。
2.可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。
3.scanf函数中没有类似printf的精度控制。
如:scanf("%5.2f",a); 是非法的。不能企图用此语句输入小数为2位的实数。
4.scanf中要求给出变量地址,如给出变量名则会出错
如:scanf("%d",a);是非法的,应改为scanf("%d",a);才是合法的。
5.在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。
C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
6.在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。
参考资料:
百度百科-scanf()函数
百度百科-gets()函数
(3)输入一个实数类型,说白了就是小数,当然整数也是支持的,存储为实数类型
(4)输入一个实数类型并加上一个回车,说白了就是小数,当然整数也是支持的并加上一个回车,存储为实数类型
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流