C语言文件的输入/输出

这篇博客介绍了C语言中文件输入/输出的重要性和常用函数,如fopen()、fclose()、fseek()、fwrite()和fread()。文章通过一个模拟压缩文件的示例,展示了如何在实践中运用这些函数。此外,还强调了C语言的输入/输出采用流的形式,并解释了标准输入(stdin)、标准输出(stdout)和标准错误(stderr)的概念。
摘要由CSDN通过智能技术生成

    对文件的输入/输出学习是C语言中的一块重要内容,因为当你的程序变得复杂时,难免要处理一些文件,涉及到文件的读取和写入。C语言提供了强大的文件输入/输出功能,其标准I/O包中包含了很多专用的函数,可以很方便地读取和写入文件,我将在下面介绍几种常用的文件I/O函数,并最后给出一个模拟压缩文件的例子。

    在介绍函数之前,首先要说明C语言处理输入和输出,是采用“流“的形式,而且常常会有缓冲区,缓冲区的存在可以提高输入/输出处理的高效性,举个简答的例子,如果没有缓冲,下面这个代码的执行效果会很尴尬!

while((ch=getchar())!='\n')
	putchar(ch);
putchar('\n');


    当你输入“abc[回车的时候]”,屏幕显示的是"aabbcc",因为没有缓冲的存在,一输入马上得到输出。那么如何理解文件流的形式,可以这么理解,字符的输入就像注入一段水流,这些调用函数就在岸边去抽取自己想要的输入,然后显示,我以一个常见的小错误代码来说明

char ch;
int num1, num2;

while((ch=getchar())!='\n'){
	putchar(ch);
	scanf("%d%d", &num1, &num2);
	printf("%d %d", num1, num2);
}
putchar('\n');

    当你输入“a 42 24[回车]”的时候,这段字符序列“a【空格】42【空格】24【回车】”就向水流一样流进缓冲区,其中a被ch=getchar()捕获,然后进入循环,由于scanf()自动跳过空白字符,所以捕获两个整型量42和24,遇到【回车】会刷新缓冲区,所以屏幕输出“a42 24”,然后就结束循环了,因为[回车]被ch=getchar()捕获,不满足循环条件,跳出循环。

    所以大家在分析输入输出的时候也可以照着这种方法去分析,其实良好的输入输出功能是一个是需要程序员很细心的去处理,涉及到很多细节。

    接下来,介绍三个标准文件:stdin,stdout,stderr。可以将这3个文件理解成C语言自带的用于处理键盘输入,屏幕显示,标准错误的立即显示。stdin表示标准输入,通常指键盘输入,stdout表示标准输出,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值