c语言输入流

scanf
getchar
gets
fgets

1、scanf

其调用格式为: scanf("<格式化字符串>",<地址表>);

例1.1整数

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

顺序读入3个整数,以空格 制表符 回车进行划分。

例1.2字符-空格的作用

scanf("%c%c%c",&c1,&c2,&c3);

1.2.1"%c%c%c"中间没有空格

i输入:

a b c

i输出

c1=a
c2= (空格)
c3=b

scanf("%c %c %c",&c1,&c2,&c3);

1.2.2"%c %c %c"中间有空格(个数没有关系)

ii输入:

a b c

ii输出

c1=a
c2=b
c3=c

例1.3字符串

scanf("%s",s)

i输入

asd ffg

i输出

s="asd"

截取空格前面的字符串。

2、getchar()获取单个字符

char c;
c=getchar();

等于scanf("%c", c)相当于scanf的简化版本。

3、gets获取字符串

char s[5];
gets(s);
printf("%s",s);

i输入

asdfghj

i输出

asdfghj

因为c不检查是否超过数组的长度,所以可以传入超长的字符串,而在输出字符串的时候,是以字符串结束标志'\0'为准的。所以不推荐使用

4、fgets获取字符串

char buf[5000];
fgets(buf,sizeof(buf),stdin)

原本fgets是从文件中读取字符串的,这里导向到标准输入,并且这个函数是可以指定输入的字符串的长度的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。