简要介绍
- 头文件
<stdio.h>
:是C语言中提供输入和输出能力的头文件,包含对文件的通用操作和窄字符的输入输出。 - 标准输入
stdin
:与标准输入流关联的 FILE* 类型表达式,通常是键盘。 - 标准输出
stdout
:与标准输出流关联的 FILE* 类型表达式,通常是屏幕。
无格式标准输入
getchar
int getchar(void)
从stdin读取下一个字符。
参数:无
返回值:成功时为获得的字符,失败时为EOF
示例
#include <stdio.h>
int main(void)
{
int ch;
while ((ch=getchar()) != EOF) /* 从stdin读一个字符 */
{
printf("%c", ch);
}
return 0;
}
输入
abc
abcde
输出
abc
abcde
gets
char *gets( char *str )
从stdin读取字符到str所指的字符数组
参数:str
要被写入的字符串
返回值:成功时为str
,失败时为NULL
注意:gets函数不进行边界检查,易导致缓冲区溢出,在C11标准发布时被移除,推荐使用gets_s()
替代
示例
#include <stdio.h>
int main()
{
char str[20] = {0};
gets(str);
printf("%s", str);
return 0;
}
输入
iron man
输出
iron man
gets_s
char *gets_s( char *str, rsize_t n )
从 stdin 读取字符直到出现换行符或文件尾,至多写入n-1
个字符到str
所指向的数组
参数:str
要被写入的字符串,n
char数组的最大长度
返回值:成功时为str
,失败时为NULL
示例
#include <stdio.h>
#define SIZE 20
int main()
{
char str[SIZE] = {0};
gets_s(str, SIZE);
printf("%s", str);
return 0;
}
输入
iron man
输出
iron man
无格式标准输出
putchar
int putchar( int ch )
将字符ch
写到·stdout
参数:ch
要被写入的字符
返回值:成功时返回写入的字符,失败时返回EOF
示例
#include <stdio.h>
int main()
{
int ch = 'a';
putchar(ch);
return 0;
}
输出
a
puts
int puts( const char *str )
将字符串str
输出到stdout
参数:str
要输出的字符串
返回值:成功时返非负值,失败时返EOF
示例
#include <stdio.h>
int main()
{
char *str = "hello world";
puts(str);
return 0;
}
输出
hello world
有格式标准输入
scanf
int scanf(const char *format, ...)
从stdin按一定格式读取数据
有格式标准输出
printf
int printf ( const char * format, ... )
输出结果到stdin
%c
匹配一个字符
%s
匹配一个字符串
%[set]
匹配一个来自set的非空字符序列
%%
匹配字面%
%n
返回当前已读取的字符数
%d
匹配一个十进制整数
%i
匹配一个整数
%u
匹配一个无符号十进制整数
%o
匹配一个无符号八进制数
%x(%X)
匹配一个无符号十六进制整数
%f
匹配一个float
%lf
匹配一个double
%p
匹配一个指针
示例
#include <stdio.h>
int main()
{
int a;
float b;
char c;
char str1[20];
scanf("%d %f %c %s", &a, &b, &c, str1);
printf("%d %f %c %s", a, b, c, str1);
return 0;
}
输入
15 3.1415 s abc
输出
15 3.141500 s abc