ubuntu下对文件的读写操作

    xiaoxiao2026-03-14  6

    一定要注意代码格式!(重要的话说在前面,不讲道理就让你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+”。

    转载请注明原文地址: https://ju.6miu.com/read-1307965.html
    最新回复(0)