为了账号安全,请及时绑定邮箱和手机立即绑定

c语言中的scanf 函数的用法?

c语言中的scanf 函数的用法?

慕尼黑8549860 2019-02-04 16:01:20
为什么下面的函数 输出的值只是空格前面的字符呢???急求答案!!!#inclde<stdio.h>void main (){ char s[80];scanf("%s",s);printf("%s",s);}
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

1、空白符问题

#include<stdio.h>

main()

{   

int a;

printf("input the data ");

scanf("%d ",&a);//这里多了一个回车符

printf("%d",a);

return 0;

}

2、回车符也占位。

#include <stdio.h>

main()

{

int n = 5;

char c[n];

for(int i = 0; i < n; i++)

c[i] = scanf("%c",&c[i]); 

printf(c);

return 0;

}

3、scanf()函数的参数输入类型不匹配问题

#include<stdio.h>

main()

{

int a=123;

char c='t';

printf("input ");

scanf("%d%c",&a,&c);

scanf("%d%c",&a,&c);

scanf("%d%c",&a,&c);

printf("%d %c ",a,c);

return 0;

}

扩展资料:

scanf函数用%s读取一个字符串时,其实它只能读取一个单词,因为遇到空格时,它会认为输入已结束。因此一般使用fgets来读取一个字符串。如果想用scanf函数读取带有空格的字符串时,需要使用参数%[ ]来完成,它的意思是读入一个字符集合。

[ ]是个集合的标志,%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是“^”,这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止(这就是scanf函数里的正则表达式应用)。



查看完整回答
反对 回复 2019-03-14
  • 3 回答
  • 0 关注
  • 1127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信