太阳不下山 发表于 2021-8-7 14:07:16

c读写文件

#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include <stdlib.h>
#include <string.h>

char *fileName = "/Users/gxf/CLionProjects/untitled/text.txt";

void writeFile();
void readFile();
void fwriteFile();
void getChar();
void fputChar();
void putGetChar();
void freadfile();

typedef struct {
    int age;
    char *name;
} person;

#define BUFFSIZE 1024

int main() {
//    writeFile();
//    readFile();
    fwriteFile();
    freadfile();
//    getChar();
//    fputChar();
//    putGetChar();

    return 0;
}

void freadfile() {
    FILE *file2Read = fopen(fileName, "r");
    person p;
    int res = fread(&p, sizeof(person), 2, file2Read);
    if (res != 1) {
      perror("fread fail");
    }
    printf("person.age:%d, person.name:%s\n", p.age, p.name);

    fclose(file2Read);
}

void putGetChar() {
    while (1) {
      char ch = getchar();
      putchar(ch);
    }
}

void fputChar() {
    FILE *file2Write = fopen(fileName, "a+");
    char *msg2Write = "ffffffffffff";
    for (int i = 0; i < strlen(msg2Write); i++) {
      fputc(msg2Write, file2Write);
      printf("%c", msg2Write);
    }
    fclose(file2Write);
}

void getChar() {
    FILE *file2Read = fopen(fileName, "r");
    char ch;
    while ((ch = fgetc(file2Read)) != EOF) {
      putchar(ch);
    }
}

void fwriteFile() {
    person zhangsan = {19, "name"};
    FILE *file2Write = fopen(fileName, "a+");
    fwrite(&zhangsan, sizeof(person), 1, file2Write);
    fclose(file2Write);
}

void readFile() {
    char buff;
    FILE *file2Read = fopen(fileName, "r");
    while (fgets(buff, BUFFSIZE, (FILE *)file2Read) != EOF) {
      printf("buff:%s\n", buff);
      if(feof(file2Read))
            break;
    }
}

void writeFile() {
    FILE *file2Write = fopen(fileName, "a");
    fprintf(file2Write, "line1\n");
    fputs("line2\n", file2Write);
    fclose(file2Write);
}



文档来源:51CTO技术博客https://blog.51cto.com/u_2498536/3304105
页: [1]
查看完整版本: c读写文件