ubuntu下对文件的读写操作

来源:互联网 发布:全球网络电视直播软件 编辑:程序博客网 时间:2024/06/05 09:15

一定要注意代码格式!(重要的话说在前面,不讲道理就让你wa到死)

单个字符的读取:

#include <stdio.h>#include <stdlib.h>int main(){FILE *fp = fopen("test1.txt", "r");if(fp == NULL){printf("open test.txt file failed\n");exit(0);}char ch;while ((ch = fgetc(fp)) != EOF)putchar(ch);fclose(fp);return 0;}

单个字符的写入:

#include <stdio.h>#include <stdlib.h>int main(){FILE *fp = fopen("test1.txt", "w");char ch;if(fp == NULL){printf("open test.txt file failed\n");exit(0);}while ((ch=getchar())!='\n')fputc(ch,fp);fclose(fp);return 0;}

数组或者结构体的一次读取:

#include <stdio.h>#include <stdlib.h>int main(){FILE *fp1;int i;struct student{char name[10];int age;char addr[15];}stu;if((fp1=fopen("test2.txt","rb"))==NULL){printf("不能打开文件");exit(0);}printf("读取文件的内容如下:\n");for (i = 0; i < 2; i++){fread(&stu,sizeof(stu),1,fp1);printf("%s %d %s\n",stu.name, stu.age, stu.addr);}fclose(fp1);return 0;}

对数组或者结构体的一次写入:

#include <stdio.h>#include <stdlib.h>int main(){int i;struct student{char name[10];int age;char addr[15];}stu;FILE *fp1 = fopen("test2.txt", "wb");if(fp1 == NULL){printf("不能打开文件");exit(0);}printf("请输入信息:\n姓名 年龄 地址:\n");for(i = 0; i < 2; i++){scanf("%s %d %s", stu.name, &stu.age, stu.addr);fwrite(&stu, sizeof(stu), 1, fp1);}fclose(fp1);return 0;}

有一点要注意一下,在你读取同一个文件下的时候有可能会出现中文乱码的情况,这种情况下在我实践下有两种解决方式,一种是

可以将读取的文件内容存入到一个新文件中,还有一种是要在读取的时候把“rb”格式改为“rb+”。






0 0
原创粉丝点击