小编ps_*_*ps_的帖子

在C中同时读取和写入文件

假定交换文件中的每两行,直到仅剩一行或所有行都用完为止。我不想使用其他文件。

这是我的代码:

#include <stdio.h>

int main() {
    FILE *fp = fopen("this.txt", "r+");
    int i = 0;
    char line1[100], line2[100];
    fpos_t pos;
    fgetpos(fp, &pos);

    //to get the total line count
    while (!feof(fp)) {
        fgets(line1, 100, fp);
        i++;
    }

    i /= 2;  //no. of times to run the loop
    rewind(fp);

    while (i-- > 0) {  //trying to use !feof(fp) condition to break the loop results in an infinite loop
        fgets(line1, 100, fp);
        fgets(line2, 100, fp);

        fsetpos(fp, &pos);

        fputs(line2, fp);
        fputs(line1, fp);

        fgetpos(fp, …
Run Code Online (Sandbox Code Playgroud)

c fgetpos fgets file-handling

5
推荐指数
1
解决办法
3423
查看次数

标签 统计

c ×1

fgetpos ×1

fgets ×1

file-handling ×1