fseek()函数一般用于二进制文件 也可用于文本文件
EOF只可用于文本文件 用来作为文件结束的标志
函数feof()用来判断文件的当前状态是否处于结束 是返回值为非0 否则返回值0
fgets函数最多从文件中读入n-1个字符
fread(buffer,....)buffer代表一个指针,指向要读入数据的存放地址
#include "stdio.h"
int main() {
    FILE *fp = fopen("C:\\Users\\28418\\Desktop\\gao.txt", "w+");
    int i, m, n;
    for (i = 1; i < 6; ++i) {
        fprintf(fp, "%d", i);
        if (i % 3 == 0)
            fprintf(fp, "\n");
    }
    rewind(fp);
    fscanf(fp, "%d%d", &m, &n);
    printf("%d %d\n", m, n);
    fclose(fp);
}
#include "stdio.h"
int main() {
    FILE *fp = fopen("C:\\Users\\28418\\Desktop\\gao.txt", "w+");
    int i, a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
    fwrite(a, sizeof(int), 8, fp);
    fseek(fp, sizeof(int) * 4, SEEK_SET);
    fread(a, sizeof(int), 4, fp);
    fclose(fp);
    for (i = 0; i < 8; ++i)
        printf("%d,", a[i]);
    printf("\n");

}
#include "stdio.h"

int main() {
    FILE *fp;
    int count = 0;

    if ((fp = fopen("C:\\Users\\28418\\Desktop\\gao.txt", "r+")) == NULL)
        printf("打不开文件\n");
    fgetc(fp);
    while (!feof(fp)) {
        fgetc(fp);
        count++;
    }
    printf("字符个数 %d\n", count);
    fclose(fp);
}
    //1.统计x*x+y*y+z*z=2000的所有解的个数 并把所有解及解的个数写到文件gao.txt中
    FILE *fp = fopen("C:\\Users\\28418\\Desktop\\gao.txt", "w");
    if (fp == NULL) {
        printf("打开文件失败");
    }
    int x = (int) sqrt(2000), y, z, count = 0;
    for (int i = 0; i < x; ++i) {
        for (int y = 0; y < x; ++y) {
            for (int z = 0; z < x; ++z) {
                if ((i * i + y * y + z * z) == 2000) {
                    count++;
                    fprintf(fp, "x=%d,y=%d,z=%d\n", i, y, z);
                }
            }
        }
    }
    fprintf(fp, "解的个数为:%d", count);
    fclose(fp);
    //2.通过键盘输入10个整数 并写到gao2.txt文件中 用fprintf()函数完成
    FILE *fp = fopen("C:\\Users\\28418\\Desktop\\gao2.txt", "w");
    int a[10];
    if (fp == NULL) {
        printf("打开文件失败");
    }
    for (int i = 0; i < 10; ++i) {
        scanf("%d", &a[i]);
    }
    for (int i = 0; i < 10; ++i) {
        fprintf(fp, "%d,", a[i]);
    }
    fclose(fp);
  //3.将第二题写道gao2.txt文件中的10个整数读出并显示其结果 用fscanf()函数完成
    FILE *fp = fopen("C:\\Users\\28418\\Desktop\\gao2.txt", "r");
    int b[10];
    if (fp == NULL) {
        printf("打开文件失败");
    }
    for (int i = 0; i < 10; ++i) {
        fscanf(fp, "%d", &b[i]);
    }
    for (int i = 0; i < 10; ++i) {
        printf("%d", b[i]);
    }
    fclose(fp);
//4.实现分别从两个文件test1.txt和test2.txt中读出数据 然后写到文件test中 形成两个输入文件的连接
    FILE *fp1 = fopen("C:\\Users\\28418\\Desktop\\test1.txt", "r");
    FILE *fp2 = fopen("C:\\Users\\28418\\Desktop\\test2.txt", "r");
    FILE *fp = fopen("C:\\Users\\28418\\Desktop\\test.txt", "w");
    if (fp == NULL || fp1 == NULL || fp2 == NULL) {
        printf("打开文件失败");
    }
    // 读取并写入fp1的内容
    char buffer[1024];
    while (fgets(buffer, sizeof(buffer), fp1)) {
        fputs(buffer, fp);
    }

    // 读取并写入fp2的内容
    while (fgets(buffer, sizeof(buffer), fp2)) {
        fputs(buffer, fp);
    }
    fclose(fp1);
    fclose(fp2);
    fclose(fp);

posted on 2024-09-13 09:26  蒸饺  阅读(54)  评论(0)    收藏  举报