C: 文件 I/O (1)

一、文件:程序运行时,必须先把文件数据从硬盘加载到内存
1、文本文件:数据已ASCII码的形式存放,即每个码代表一个字符。
2、二进制文件:数值型数据是以二进制的形式存放的,把内存中的数据按照其在内存中的形式存放。其存放数据的效率较高。当文件中含有大量数据类型时,推荐使用二进制文件。
3、文件的写入与读出约定为同一中文件格式。
4、缓冲文件系统:c语言采用了该系统。指:系统自动在内存区为每一个正在使用的文件开辟一个缓冲区,先将需要读写的数据收集到缓冲区中,然后在缓冲区中读取数据,直到读完;写数据则相反,先往缓冲区写入数据,写满以后,把缓冲区的数据移送到文件中,再重复操作。

二、文件的打开与关闭,读写
stdio.h 中定义了一个结构体类型:FILE。它包含了很多文件操作

1、指定格式读取文件:
新建haha.txt:
在这里插入图片描述

//先在同一目录下建立haha文本文件 ,指定类型%d文件,即文件中的数据全是整型 
#include<stdio.h> //包含了文件结构体FILE
#include<conio.h>
#include<process.h> //exit 本来在stdlib中,后来出现了多线程,process也有了 
main() { 
	FILE *P1,*P2; //定义了指向FILE结构体类型的结构体指针 
	int t,n=0,x[20];
	P1=fopen("haha.txt","r");  //以 r 的方式打开文件,只读 
	//若指定路径名,注意使用 // 符号,其中一个表示转义
	//并使指针P1指向该文件
	if(P1==NULL){ 
		printf("文件打开失败,退出程序");
		exit(0);  //exit()函数能够关闭所有文件,终止程序 
	} 
	
	//格式化读取:c语言允许指定格式读取文件 
	
	while(!feof(P1)) {  //feof函数在头文件stdio.h中,用于判断文件是否结束
		fscanf(P1,"%d",&t);//从P1所指向的文件中读取整形数据并赋值给t 
		x[n++]=t;  //先用再加 
	}
	fclose(P1); //使用完文件后必须关闭文件
	
	P2=fopen("ha.txt","w"); //以 w 的方式打开文件 【w(只写):如果没有该文件,则新建一个 】 
	for(int j=0;j<n;j++){  //前面的n已经在退出循环时加了1,这里就不能写成 j<=n 
		fprintf(P2,"%4d",x[j]);  //加冒号 
	}
	fclose(P2);
}
 

输出到ha.txt文件:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值