磁盘文件的读写问题

磁盘文件的读写问题

了解fputc(字符,文本路劲的指针)基本格式:将字符写到磁盘文件中
了解fgetc(文本路劲的指针)基本格式,从磁盘文件中读取字符;

了解exit()函数,它包含在stdlib.h的头文件中。
exit是一个库函数,exit()使程序立即正常终止,如果状态值为0则认为正常推出,如果非零则说明存在执行错误。调用exit()清除和关闭所有打开的文件,写出任何缓冲输出,并且调用所有atexit()登记的程序终止函数。

一:将终端输入的数据写到任意指定的文件中:
这里要注意一下就是代码中第一个getchar()是用来“吸收”由scanf()函数作用下缓存区中的空格“enter”。

#include <stdio.h>
#include <stdlib.h>
int main()
{
	FILE *fp;
	char ch, filename[20];
	scanf("%s",filename);
	if((fp = fopen(filename,"w"))==NULL) //文件如果打开失败就会返回NULL指针 
	{
		printf("文件打开失败\n");
		exit(0);
	}
	ch = getchar();//第一个getchar()是用来吸收scanf()函数中作用下缓存区的空格 
	ch = getchar();//正真的读取字符 
	while(ch != '#')//如果读取到的字符是“#”,则停止写入 
	{
		fputc(ch,fp);
		ch = getchar();
	}
	fclose(fp);//关闭文件 
	return 0;
 } 

终端创建文本文件,并向文本中写入内容,以#结束:
在这里插入图片描述

成功创建磁盘文件,并成功写入内容:
在这里插入图片描述
————————————————————————————————————————————————————————

二:将磁盘文件中的数据内容读取出来,在终端显示:

另外,要注意在终端乱码问题:

原因:主要是在Windows简体中文下面,你的源代码保存是GBK形式,二进制文件也是,然后读入外部utf-8的时候文件的时候,也就时读取utf-8编码的数据,程序才不管什么编码,直接读入,然后后面进行操作的时候(也就时显示),直接将utf-8编码的数据交给控制台,控制台也是以GBK进行解码,如此编码和解码不一致肯定乱码**

解决办法:将编码格式utf-8改成ANSI就可以了。
在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>
int main()
{
	FILE *fp;
	char ch;
	if((fp = fopen("D:\\y.txt", "r"))==NULL)
	{
		printf("文件不存在\n");
		exit(0);
	}
	ch = fgetc(fp);
	while(ch !=EOF)//这里表示,如果读取完了文本中的内容,就停止读取,用大写EOF表示 
	{
	   putchar(ch);
	   ch = fgetc(fp);
	}
	fclose(fp);//关闭文件 
	return 0;
}

在预先创建的文本中写入数据:
在这里插入图片描述

将文本中的数据成功的读取出来,并且显示在终端:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值