范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

用FILE函数给文本文件排序

  1.将一个随机数写到一个文本文件中#define _CRT_SECURE_NO_WARNINGS #include #include #include #include  //将随机数写到文本文件中,并给随机数排序 int main0601() { 	srand((unsigned char)time(NULL)); 	FILE* p = fopen("F:/a.txt", "w"); 	if (p) 	{ 		for (int i = 0; i < 100; i++) 		{ 			int seq = rand() % 256; 			char buf[100] = { 0 }; 			sprintf(buf, "%d ", seq);//将证书转换为字符串 写到buf中 			fputs(buf, p);//将buf写到p中 		} 		fclose(p); 	} }
  2.给这个文本文件中的随机数排序#define _CRT_SECURE_NO_WARNINGS #include #include #include   int main0602() { 	FILE* p = fopen("F:/a.txt", "r"); 	int arr[100] = { 0 }; 	int index = 0; 	while(!feof(p)) 	{ 		char buf[1024] = { 0 }; 		fgets(buf, sizeof(buf), p); 		arr[index] = atoi(buf); 		index++; 	} 	fclose(p); 	Bubble_Sort(arr, 100); 	p = fopen("F:/a.txt", "w"); 	for (int i = 0; i < 100; i++) 	{ 		char buf[1024] = { 0 }; 			sprintf(buf, "%d ", arr[i]); 			fputs(buf, p); 	} 	fclose(p); 	return 0; }
  3.给这个任意大小的文本文件排序#define _CRT_SECURE_NO_WARNINGS #include #include #include //任意大小的文件排序 int main0603() { 	FILE* p = fopen("F:/a.txt", "r"); 	int arr[256] = { 0 }; 	while (!feof(p)) 	{ 		char buf[1024] = { 0 }; 		fgets(buf, sizeof(buf), p); 		int a = atoi(buf); 		arr[a]++;//统计相同数字出现的次数 	} 	close(p); 	p = fopen("F:/a.txt", "w"); 	for (int i = 0; i < 256; i++) 	{ 		for (int j = 0; i < arr[i]; j++) 		{ 			char buf[100] = { 0 }; 			sprintf(buf, "%d ", i); 			fputs(buf, p); 		} 	} 	fclose(p); 	return 0;  }
  4.给文本文件中的内容解析出来并求值
  如:20*5=
  15/3=#define _CRT_SECURE_NO_WARNINGS #include #include #include //将文本中的数学表达式求值并保存到文件 static int func1(int a, char b, int c) { 	switch (b) 	{ 	case "+": 		return a + c; 	case "-": 		return a - c; 	case "*": 		return a * c; 	case "/": 		return a / c; 	} 	return 0; }   #define NUM 100 int main0701() { 	FILE* p = fopen("F:a.txt", "r"); 	//char arr[100][100] = { 0 };. 	char* arr = calloc(NUM, sizeof(char)); 	char* temp = arr;//代表当前需要写入的字符位置 	int index = 0; 	while (1) 	{ 		char buf[100] = {0}; 		fgets(buf, sizeof(buf), p); 		if (feof(p)) 			break; 		int a = 0; 		char b = 0; 		int c = 0; 		sscanf(buf, "%d%c%d=", &a, &b, &c); 		sprintf(arr[index],"%d%c%d=%d ", a, b, c,func1(a,b,c)); 		arr = realloc(arr, NUM * (index + 2)); 		temp = arr + (NUM * (index + 1));//arr永远指向堆内存首地址,temp每次向后移动100字节 		index++; 	} 	fclose(p); 	p = fopen("a.txt", "w"); 	temp = arr;//让temp回到起始位置 	for (int i = 0; i < index; i++) 	{ 		fputs(arr[index], p); 		temp += NUM; 	} 	fclose(p); 	return 0; }
  5.fprintf、和fscanf#define _CRT_SECURE_NO_WARNINGS #include #include #include   int func1(int a, char b, int c) { 	switch (b) 	{ 	case "+": 		return a + c; 	case "-": 		return a - c; 	case "*": 		return a * c; 	case "/": 		return a / c; 	} 	return 0; }   int main0801()//fscanf和fprintf { 	FILE* p = fopen("F:/a.txt", "r"); 	FILE* p1 = fopen("F:/b.txt", "w"); 	while (1) 	{ 		int a = 0; 		char b = 0; 		int c = 0; 		fscanf(p, "%d%c%d=", &a, &b, &c);//从文件中读取内容 		if (feof(p)) 			break; 		fprintf(p1,"%d%c%d=%d ", a, b, c,func1(a,b,c));//将输出结果放到p的文件中 	} 	fclose(p); 	fclose(p1); 	return 0; }  int main0802() { 	FILE* p = fopen("F:/a.txt", "r"); 	while (1) 	{ 		char buf[100] = { 0 }; 		int age = 0; 		//fscanf(p, "年龄=%d", &age); 		fgets(buf, sizeof(buf), p); 		if (feof(p)) 			break; 		sscanf(buf, "年龄=%d", &age); 		printf("%d ", age); 	} 	close(p); 	return 0; }  //从一个文本文件中读取姓名和年龄   //文本文件内容 如:  姓名=黎明,年龄=45 int main0803() { 	FILE* p = fopen("F:/a.txt", "r"); 	while (1) 	{ 		char  buf[1042] = { 0 }; 		fgets(buf, sizeof(buf), p); 		if (feof(p)) 			break; 		char* s = strtok(buf, ","); 		char* name = strtok(buf, "="); 		printf("%s ", &name[1]); 		s = strtok(NULL, ","); 		//printf("%s ", &s[5]); 		printf("%d ", atoi(&s[7])); 	} 	fclose(p); 	return 0; }
  5.给文本文件中成员年龄第二大的人输出#define _CRT_SECURE_NO_WARNINGS #include #include #include    //从一个文本文件中读取姓名和年龄   并且给该成员排序,输出年龄第二大的人 int main0901()//输出第二大的数字 { 	int a[10] = { 55,25,11,88,99,78,52,63,87,5 }; 	int max=0;//最大的数 	int smax=0;//第二大的数 	for (int i = 0; i < 10; i++) 	{ 		if (a[i] > max) 		{ 			smax = max; 			max = a[i]; 		} 		else if (a[i]smax) 		{ 			smax = a[i]; 		} 	} 	printf("%d ", smax); 	return 0; }  int main0902() { 	FILE* p = fopen("f:/a.txt", "r"); 	int max = 0; 	int smax = 0; 	char max_name[100] = { 0 }; 	char smax_name[100] = { 0 }; 	while (1) 	{ 		char buf[1024] = { 0 }; 		fgets(buf, sizeof(buf), p); 		if (feof(p)) 			break; 		char* s = strtok(buf, ","); 		char* name = strtok(buf, "="); 		s = strtok(NULL, ","); 		if (atoi(&s[5] > max)) 		{ 			smax = max; 			max = atoi(&s[5]); 			strcpy(smax_name, max_name); 			strcpy(max_name, &name[1]); 		} 		else if (atoi(&s[5] < max && atoi(&s[5])) > smax) 		{ 			smax = atoi(&s[5]); 			strcpy(smax_name, &name[1]); 		} 	} 	fclose(p); 	printf("%s ", smax_name); 	return 0; }
  6.stat函数#include #include  #include int stat(const char* filename,struct stat*buf);
  stat.at_size;//文件大小,单位:字节
  函数的参数1代表文件名,参数2是struct stat结构。
  函数说明:通过文件名filename获取文件信息,并保存在buf所指的结构体stat中。
  返回值:执行成功则返回0,失败返回-1,错误代码存于errno。
  错误代码:
  ENOENT
  参数file_name指定的文件不存在
  ENOTDIR
  路径中的目录存在但却非真正的目录
  ELOOP
  欲打开的文件有过多符号连接问题,上限为16符号连接
  EFAULT
  参数buf为无效指针,指向无法存在的内存空间
  EACCESS
  存取文件时被拒绝
  ENOMEM
  核心内存不足
  ENAMETOOLONG
  参数file_name的路径名称太长	struct stat {     dev_t st_dev; //文件的设备编号     ino_t st_ino; //节点     mode_t st_mode; //文件的类型和存取的权限     nlink_t st_nlink; //连到该文件的硬连接数目,刚建立的文件值为1     uid_t st_uid; //用户ID     gid_t st_gid; //组ID     dev_t st_rdev; //(设备类型)若此文件为设备文件,则为其设备编号     off_t st_size; //文件字节数(文件大小)     unsigned long st_blksize; //块大小(文件系统的I/O 缓冲区大小)     unsigned long st_blocks; //块数     time_t st_atime; //最后一次访问时间     time_t st_mtime; //最后一次修改时间   	time_t st_ctime; //最后一次改变时间(指属性) 	};#include #include #include   int main0101() { 	struct stat st = { 0 }; 	stat("F:/a.txt", &st);//调用完stat函数后,st里得到文件属性 	int size = st.st_size;//得到文件大小 	printf("%d ", size); 	return 0; }
  7.fread和 fwrite函数
  对文件格式化读写函数 fprintf 与 fscanf 而言,尽管它可以从磁盘文件中读写任何类型的文件,即读写的文件类型可以是文本文件、二进制文件,也可以是其他形式的文件。但是,对二进制文件的读写来说,考虑到文件的读写效率等原因,还是建议尽量使用 fread 和 fwrite 函数进行读写操作。
  size_t fread(void *buf, size_t size, size_t count, FILE *fp);
  size_t fwrite(const void * buf, size_t size, size_t count, FILE *fp);
  参数1:buf内存地址;参数2:每次读取字节数;
  参数3:读取次数;参数4:fopen返回的文件指针
  即 fread 函数从文件 p 中读出"size*count"个字节保存到 buf 中,而 fwrite 把 buf 中的"size*count"个字节写到文件 fp 中。
  fgets fputs fprintf, fscanf这些函数都是针对文本文件读写的,不能对一个二进制文件进行读写。
  除了文本文件之外的文件都是二进制,比如图像,可执行程序,音乐,这些均为二进制文件。#define _CRT_SECURE_NO_WARNINGS #include  //fwrite   将一个整数写进二进制文件 int main0201() { 	FILE* p=fopen("F:/a.dat", "w"); 	int a = 546565321; 	fwrite(&a, 1, sizeof(int), p);//往文件p里写4字节内容,内容是100 //	fwrite(&a, sizeof(int), 1, p);//写1个整数  同上 	fclose(p); 	return 0; }  int main0202() { 	FILE* p = fopen("f:/a.dat", "r"); 	while (1) 	{ 		int a = 0; 		fread(&a, 1, sizeof(int), p); 		if (feof(p)) 			break; 		printf("%d ", a); 	} 	fclose(p); 	return 0; }
  8.fopen的a、b模式#define _CRT_SECURE_NO_WARNINGS #include #include #include  //fopen_a追加模式 int main0301() { 	FILE* p = fopen("f:/a.txt", "a"); 	fputs("helloworld ", p); 	fclose(p); 	return 0; }   //fopen_rb+  读写打开一个二进制文件,允许读写数据,文件必须存在  /* windows所有的文本文件均以r 为结尾,而不是 结尾 如果读文件时参数是"r",那么系统会将 前的 自动隐藏 若在参数"r后"添加"b",即"rb"那么r会显示出来 */ int main0302(int argc,char**argv) { 	FILE* p = fopen(argv[1], "wb"); 	char a[100] = { "hello world "}; 	fputs(a, p); 	close(p); 	return 0; }
  9.二进制文件的拷贝#define _CRT_SECURE_NO_WARNINGS #include #include #include #include //二进制文件的拷贝  #define NUM 1024*64//64k int main0401(int argc,char** argv) { 	if (argc < 3) 		return 0; 	FILE* p = fopen(argv[1], "rb"); 	if (p == NULL) 		return 0; 	FILE* p1 = fopen(argv[2], "wb"); 	if (p1 == NULL) 		return 0; 	unsigned int index = 0;//统计循环多少次 	struct stat st = { 0 }; 	stat(argv[1], &st); 	int size = st.st_size;//得到文件大小 	if (size >= NUM)//如果文件小于64k 就开辟64k 若大于则根据实际大小开辟 		size = NUM; 	char* buf = malloc(size);//根据文件大小,动态分配内存 	while (!feof(p)) 	{ 		//char a[1024] = {0}; 		int res=fread(buf, 1, size, p); 		fwrite(buf, 1, res, p1); 		index++; 	} 	free(buf); 	fclose(p); 	fclose(p1); 	printf("%u ", index); //输出循环次数 	return 0; }
  10.fseek和ftell函数
  int fseek(FILE *stream, long int offset, int whence)
  · stream 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
  · offset 这是相对 whence 的偏移量,以字节为单位。
  · whence 这是表示开始添加偏移 offset 的位置。它一般指定为下列常量之一:
  SEEK_SET
  文件的开头
  SEEK_CUR
  文件指针的当前位置
  SEEK_END
  文件的末尾
  返回值:如果成功,则该函数返回零,否则返回非零值。
  注意:超出文件末尾,返回值为0,往回偏移超出首位置返回值还是0。
  ftell() 函数用来获取文件读写指针的当前位置。
  其原型为:long ftell(FILE * stream);
  返回值:成功则返回当前的读写位置,失败返回-1。#define _CRT_SECURE_NO_WARNINGS #include #include #include #include  /*fseek函数  任意改变文件指针的位置 SEEK_SET 开始 SEEK_CUR 当前 SEEK_END 末尾 */ int main0501() { 	FILE* p = fopen("f:/a.dat", "w"); 	char a[10] = { 1,2,3,4,5,6,7,8,9,10 }; 	fwrite(a, 1, sizeof(a), p); 	fclose(p); 	return 0; }   //ftell函数,功能是告诉当前指针的位置  通过ftell得到文件大小 int main0502() { 	FILE* p = fopen("f:/a.dat", "r");  	//通过ftell得到文件大小 	fseek(p, 0, SEEK_END); 	int size = ftell(p); 	printf("size=%d ", size);//size即文件大小 	fseek(p, 0, SEEK_SET);//再将指针放到初始位置   	fseek(p, 2, SEEK_SET);//将文件指针从开始位移2个指针 	//while (!feof(p)) 	for(int i=0;i<2;i++) 	{ 		char a[2]; 		fread(&a, 1, sizeof(a), p); 		//fseek(p, -2, SEEK_CUR);//从当前位置退回位移2个字节 		//fseek(p, 0, SEEK_SET);//回到文件开始 		//fseek(p, 0, SEEK_END);//到达文件末尾 		printf("%d,%d ", a[0],a[1]);  		int loc = ftell(p);//获取当前指针位置 		printf("loc=%d ", loc); 	} 	fclose(p); 	return 0; }  //利用fseek生成大文件 int main0503() { 	FILE* p = fopen("f:/a.dat", "w"); 	for (int i = 0; i < 100; i++) 	{ 		char a = 0; 		fwrite(&a, 1, sizeof(a), p); 	} 	fclose(p); 	return 0; } //利用fseek快速生成大文件 int main0504() { 	FILE* p = fopen("f:/a.dat", "w"); 	fseek(p, 1000, SEEK_SET); 	char a = 0; 	fwrite(&a, 1, sizeof(a), p); 	fclose(p); 	return 0; }   //通过ftell得到文件大小 int main(int argc, char** args) { 	if (argc < 2) 		return 0; 	if (p == NULL) 		return 0; 	FILE* p = fopen("f:/a.dat", "r"); 	int res=fseek(p, 0, SEEK_END); 	printf("%d ", res); 	int size = ftell(p); 	printf("size=%d ", size); 	fclose(p); 	return 0; }

你觉得国产手机品牌中,哪一个能够挑战苹果?感谢您的阅读!你觉得在国产手机品牌中,哪一个能够挑战苹果?前两天,小米手机发布会上,雷军豪言壮志要对标苹果!正式吹响了挑战苹果的号角。其实我们知道,国产手机实际上除了小米之外,大家HUAWEInova98GB128GB4G全网通版,颜色及介绍颜色选择(9号色)(绮境森林)(普罗旺斯)(亮黑色)四个颜色可选选择版本4G全网通8GB128GB4G全网通8GB256GB两个版本可选9号色年度新色号,现在揭晓传承经典的星耀环镜苹果旗下最便宜5G手机要来了?苹果旗下最便宜5G手机要来了?消息称全新iPhoneSE最快3月上市。SE这一系列手机对于苹果来说一直是一个神奇的产品线,一方面明眼人都知道这是一款为了清理库存而打造出来的堆料产品我国6G技术重大突破,速度为5G的20倍,马斯克的星链连5G都达不到有人说马斯克的星链是6G通信,此话差矣。6G其实就是第六代移动通信技术,虽然目前没有统一的标准,但是普遍认为其通信速度应该达到1T以上,而目前星链速度连5G速度都没达到!美国spa又有大瓜!多位大V爆料称iPhone将取消物理卡槽,苹果要干嘛?iPhone13系列推出至今,不过才短短几个月时间,手机都还没被消费者捂热,坊间关于苹果下一代iPhone14的消息却已经如雪球一般越堆越大。其中关注度最高的一条消息称,苹果将于2小米12性能有多强在12月28日那天,相信许多人都应该知道那场发布会,这场发布会发布了国内第一款搭载了高通8gen1处理器的手机,小米12,不仅仅如此,这款手机还搭配有120赫兹的高刷屏幕,50005000mAh大电池67W闪充天玑1100芯片,跌至1309元自从卢伟冰接管Redmi之后,就对这个品牌做了全面整改,推出了K旗舰系列,也将Note系列升级为小金刚系列,Note系列是性价比和品质相结合的手机,是卢伟冰将高端配置大众化的一个系四两拨千斤,DDR5内存转DDR4适配器,完美解决内存过渡问题前几个月,英特尔证实第12代酷睿平台可以同时支持DDR5内存和老式DDR4内存。但是这种同时支持并不是指两者可以同时混用。也不是某些朋友所希望想象中的那样,一块600芯片组主板上有服了!都2021年了,iPhone13还是4G运行内存,国产手机不香吗?iPhone13系列在今年9月中旬正式发布,配置和价格就不多介绍了,其中比较有意思的是,这次苹果将A15处理器分成了三个版本,分别用在iPhone13iPhone13mini(阉割一加10Pro真机配置曝光,使用80瓦快充,后置三摄一加10Pro的真机和配置都曝光了,当然这次的搭配算一般吧,不过很多人应该对接下来的手机不能说很期待了。就是这样的设计思路,后置三摄,当然这个手机应该是使用微曲面屏,也是使用三星的16GB大内存,跑步随心听,南卡RunnerPro3骨传导蓝牙耳机评测现在越来越多的跑者钟爱骨传导蓝牙耳机了,一方面是因为佩戴骨传导蓝牙耳机后,即便是在听歌或者语音通话状态下也能听到外界的声音,这在户外运动中可有效避免危险的发生另一方面就是它的不入耳
ipad是买WiFi版的好,还是买4G版的好?本行业问题,我来回答。ipad是买WIFI版,还是买4G版的问题,主要看你使用ipad是干什么用,而且也要考虑到你在什么地方使用这个ipad。WIFI版本的ipad只能在WIFI环华为Mate50Pro也有1TB版本,升级5000mAh100W快充,强目前iPhone13系列已经发布,原本华为Mate系列新机也应该在这段时间发布,但由于众所周知的原因,今年的华为Mate50系列不得不推迟。按照外媒给出的消息,今年华为Mate50三星GalaxyA新机黑科技曝光,A50悲惨让路沦为百元机三星正在开发2022年的新a系列手机。此外,据报道,三星将从明年开始向GalaxyA系列的整个产品线提供OIS支持。据韩国媒体报道,GalaxyA73可能是该公司首款搭载108兆像夏天空调连续开一晚上,需要用多少度电?大概多少钱?到了炎热的夏天为了在家里待着更舒适,我们难免会开空调进行室内降温的,而且太热的时候,我们甚至是白天黑夜睡觉都是开空调才可以保证室内的舒适度,但是我们这样长期使用空调的话,难免会让大手术刀,梵高,喝咖啡,爬喜马拉雅山任正非到底在说什么?江山代有才人出任正非与华为科研人员谈科技创新本报记者王硕9月14日,华为公开了创始人任正非在华为公司中央研究院创新先锋座谈会上与部分科学家专家实习生的讲话。其中表达了他对科技创新科元宇宙是互联网的下一个风口,还是会变成湮灭虚拟世界的泡沫最近一段时间,元宇宙突然火了起来,不论在网络上还是在资本市场上,迅速飙升。以前很少听说的名词,怎么就突然爆红了呢?元宇宙到底是什么呢?关于元宇宙的描述,最早出现在科幻作家的小说里。手机取代者浮出水面,但颠覆性产品AR还要等一两年?图图虫来源21Tech(News21)作者骆轶琪编辑李清宇刘雪莹加州来电为主题的苹果发布会之前,曾因为预告片中呈现出带AR效果的图景,而让数码圈一度以为,在这一次的发布会中,苹果C世链投研备受瞩目的TORN究竟真有实力,还是不过是价值投资?在匿名币的领域,TORN的存在无疑是特殊且具有代表性的。一方面,它被许多业内人士看好,认为其是匿名币领域,当之无愧的明日之星。就连以太坊的V神都为其背书,多次表示TORN在隐私技术2021年Q2全球中高端智能手机市场报告苹果份额超57现如今,国内各大手机厂商都开始冲击高端市场,以求抢占华为空缺出来的市场份额,增加品牌未来发展的方向,丰富产品线和提升产品利润等。比如,小米10系列小米11系列OPPOFindX系列币圈事件韩国60多家加密货币交易所将停止运营以作出调整韩国60多家加密货币交易所将停止运营以作出调整9月17日消息,韩国60多家加密货币交易所被通知必须在周五之前通知客户部分或全部暂停交易作出调整,如需继续运营,必须在9月24日之前向新机十三香降价开卖?转转二手市场iPhoneX售价不降反涨加州来电iPhone13正式上线!一时间,相关的话题便占据了各大社交平台的热搜,但与此前网上盛传的消息并不一致,这次苹果意外下血本降价,其中iPhone13iPhone13minn