猿问

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

为什么下面的函数 输出的值只是空格前面的字符呢???急求答案!!!
#inclde<stdio.h>
void main ()
{ char s[80];
scanf("%s",s);
printf("%s",s);
}

慕尼黑8549860
浏览 1128回答 3
3回答

RISEBY

1、空白符问题#include<stdio.h>main(){ &nbsp;&nbsp;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]);&nbsp;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函数里的正则表达式应用)。
随时随地看视频慕课网APP
我要回答