程序的输入,输出
输入:外部移到ram 中
输出:发送到外部的某个地方
流的模式
文本模式:只包括字符.每行最多255,以换行符结尾.
二进制模式:不限于文本数据.
五个标准流
两个重要概念
缓冲:把所有的字符保存在临时存储空间,当用户按下enter键时,把它们发送到stdin中.
回显:有些输入函数将每个字符回显到stdout中.
输入函数分为三类:
字符输入:每次从流中读取一个字符.
getchar()读取stdin中的下一个字符,具有缓冲和回显的功能.
getch(),不缓冲,不回显
getche():只回显
getchc(),fgetchc():不会自动使用stdin,而让用用户指定输入流.
%n,%r区别
%n相对于缓冲的输入函数会自动将空格转化为换行符,因此检查是否为%n,确定是否按下enter.
%r相对于不缓冲的输入函数则不进行这种转换,所以仍为%r
行输入:读取换行符之前的所有字符.
gets():从stdin读取一行,并储存在字符串中.将char指针作用参数,并返回char指针.
fgets():和gets()类似,不过更灵活,可以指定流
格式化输入:
scanf()
fscanf():指定流
两种处理输入多余字符的方法:
1,函数
void clear_kb(void)
{
char junk[80];
gets(junk);
}
2,fflush(stdin);
字符输出类似
puts():显示字符串
fputs():指定流
重定向输入,输出: