文章目录
c语言中的基本输入与输出函数
1.格式化输入输出函数
1.1printf()函数
大家很熟悉了,这里不多加介绍
1.2scanf()函数
- 调用格式为:
scanf("<格式化字符串>",<地址表>);
- scanf的返回值
scanf()函数返回成功赋值的数据项数
读到文件末尾出错时则返回EOF。
如:
scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF
且返回值为int型
空白符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
非空白符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符
2.非格式化的输入输出函数
2.1puts()和gets()函数
2.1.1puts()函数
- 头文件为
stdio.h
- puts()函数用来向标准输出设备(屏幕)写字符串并换行
- 调用格式为
puts(s)
,其中s为字符串变量(字符串数组名或字符串指针)。puts()函数的作用于printf("%s\n",s)
相同
例如:
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[20],* f;
strcpy(s,"Hello!");
f="Thank you ";
puts(s);
puts(f);
return 0;
}
说明
- (1) puts()函数只能输出字符串,不能输出数值或者进行格式变换
- (2) 可以将字符串直接写入puts()函数中。如
puts("Hello,Tuuu")
2.1.2gets()函数
- 头文件为
stdio.h
char * gets(char * str);
- gets()函数用来向标准输入设备(键盘)读取字符串直到回车结束,不同于fgets,它没有指定num,所以需要注意字符数组str的大小
- 调用格式为
gets(s)
,其中s为字符串变量(字符串数组名或者字符串指针)。gets()函数的作用于scanf("%s",&s)
函数作用类似,使用``scanf(“%s”,&s) 函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符串直到回车为止。
2.2putchar()、getch()、getche()和getchar()函数,附fgets函数
2.2.1.putchar()函数
等同于printf("%c",ch)
2.2.2getch()函数、getche()函数
- 头文件
conio.h
- 并非标准C中的函数,建议还是使用getchar()
int getch(void)
当你用键盘输入的时候,屏幕不显示你所输入的字符(不带回显),不需要按回车,程序自动继续进行int getche(void)
屏幕显示你所输入与的字符(带回显),不需要按回车,程序自动继续进行
2.2.3.getchar()函数
- 头文件
stdio.h
int getchar(void)
从标准输入stdin读入一个字符,程序等待你输入的时候你可以输入多个字符,回车后程序继续执行。但是getchar实际上制度如第一个字符。- 常用在exe中暂停程序。
2.2.4.fgets()函数
- char * fgets(char * str, int num, FILE * stream);
- 头文件
stdio.h
- 从流stream中读入最多num个字符到字符数组str中,当遇到换行符的时候,或者读到num-1个字符时候停止。自动加上
'\0'
空字符结尾
晚点补充一下输入流的问题