IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言文件学习の最终季 -> 正文阅读

[C++知识库]c语言文件学习の最终季

格式化读写

c语言中最常用的输入输出是printf()函数和scanf()函数但是对于文件操作我们用到fprintf()与fscanf。fprintf和fscanf函数,与printf和scanf函数的作用相似。它们最大的区别就是 读写的对象不同,fprintf和fscanf函数读写的对象不是终端,而是磁盘文件。

fprintf函数

一般形式如下: ch = fprintf( 文件类型指针, 格式字符串, 输出列表);

例如? ? ??:?

????????fprintf ( fp, "%d",i ); 它的作用是?将整型变量i 的值以 “%d”的格式输出到 fp指向的文件中。

fscanf函数

一般形式如下: fscanf(文件类型指针,格式字符串,输入列表)

例如? ? ??:?

fscanf (? fp, "%d", &i ); 它的作用是??读入fp所指向的文件中的i的值。

随机读写?

????????在对文件进行操作时,往往不需要从头开始,一般只需对其中指定的内容进行 操作。这时,就需要使用文件定位函数来实现对文件的随机读取。有三种随机读写函数。

fseek函数

fseek 本身 定位位置指针

fseek 函数 int fess(文件类型指针,位移量 ,起始地)

函数功能:移动文件流的读写功能?

起始位置分三种情况:
文件首
SEEK- SET? ? ? ?==0


文件当前位置
SEEK- CUR? ? ? ==1


文件尾
SEEK- END? ? ? ==2

例如:
fseek ( fp, -20L, 1); 表示 将位置指针从当前位置向后退20个字节

rewind函数

rewind函数也能起到定位文件指针的作用

int? rewind ( 文件类型指针 )

该函数的作用是使位置指针重新返回文件的开头,该函数没有返回值

ftell函数

ftell函数的一般形式如下:long ftell(文件类型指针)

该函数的作用是读写位置距离文件开始有多少字节。当ftell函数的返回值为-1L时,表示出错。

文件练习

先写入再复制到第三个中并排序。

//int main(){
//		FILE *pa = fopen("./mm.txt","r+");
//		FILE *pb = fopen("./tt.txt","a+");
//		if(pa==NULL){
//		printf("gg");
//		}
//		if(pb==NULL){
//		printf("gg");
//		}
//		char cd[100];
//		fgets(cd,30,pa);
//		fputs(cd,pb);
//		fclose(pa);
//		pb = fopen("./tt.txt","r");
//		FILE *pc = fopen("./nn.txt","w");
//		char cc[100];
//		fgets(cc,20,pb); 
//		
//			int i,j;
//			char t;
//			int len = strlen(cc);
//	for(i=0;i<len-1;i++) {   //最差走.. 
//		for(j=0;j<len-i-1;j++){  //至少走 
//			if(cc[j]>cc[j+1]){	//偌大交换 
//				t = cc[j+1];
//				cc[j+1]=cc[j];
//				cc[j]=t;
//			}
//		}
//	}
//		fputs(cc,pc);
//		printf("成功\n");
//		fclose(pc);
//		fclose(pb);
=
//return 0;	
//}

改表格数据

typedef struct a{
	int id;
	char name[10];
	float money;

}SSS;
	
int main(){
	FILE *pa = fopen("./cctv.txt","r+");
		if(pa==NULL){
			printf("no  g\n");
		} 
	SSS a[4] = {{2208,"zhang",10000},{2107,"lisa",12000},{2109,"wang",13000},{2003,"ming",15000}};
		int i;
		for(i=0;i<4;i++){
			fprintf(pa,"%d	%s	%f\n",a[i].id,a[i].name,a[i].money); 
		}
		rewind(pa);
		SSS b[4];
		for(i=0;i<4;i++){
			fscanf(pa,"%d	%s	%f\n",&a[i].id,&a[i].name,&a[i].money); 
		}
			for(i=0;i<4;i++){
			printf("%d	%s\t%.1f\n",a[i].id,a[i].name,a[i].money); 
		}
		long rr =  ftell(pa); 
		printf("%ld\n",rr);
		fseek(pa,-22,SEEK_END); 
		fputs("llcd",pa);
		fseek(pa,-41,SEEK_END); 
		fputs("15000",pa);
	
	return 0;
}

重定向(输入、输出)

FILE *freopen(要打开的文件名,打开模式(加引号),文件指针标准流、stdin /?stdout)

freopen("CON","w",stdout);? 关闭输入/输出流。

//	FILE *fp = freopen("stdout.txt","w",stdout); 
//	if(fp ==NULL){
//		printf("G"); 
//	}
//	puts("a");
//	puts("b");
//	puts("c");
//	puts("E");
//	puts("F");
//	fclose(fp);
//	freopen("CON","w",stdout); 
//	puts("1");
//	puts("2");
	
	
	
	FILE *fp = freopen("stdin.txt","r",stdin); 
	if(fp ==NULL){
		printf("G"); 
	}
	char cc[20];
	fgets(cc,10,fp);
	printf("%s",cc);
	printf("1"); 

总结:更绕了 阿西吧

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:38:18  更:2022-09-24 20:40:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 12:20:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码