繁体   English   中英

尝试在 c 程序中读取和写入相同的代码

[英]trying read and write on the same code in c program

帮助我正在尝试将数据写入文件中。 然后,试图读回它,但它不起作用。

#include <stdio.h>
    
int main(void) {
    FILE *fptr = fopen("try.txt", "r+");
    char line[1000];
    
    fprintf(fptr, "i have new number = 1425");
        
    while (fgets(line, 1000, fptr)) {
        printf("%s",line);
    }
    
    return 0;
}

您必须在读写操作之间使用定位 function 例如rewind()fseek()

请注意,流的更新模式非常混乱且容易出错,您应该避免使用它并相应地构建您的程序。

顺便说一句,如果try.txt不存在,您的程序将无法打开它,但您不检查fopen失败,因此在这种情况下您将获得未定义的行为。

这是修改后的版本:

#include <stdio.h>
    
int main(void) {
    char line[1000];
    FILE *fptr = fopen("try.txt", "w+");
    
    if (fptr != NULL) {
        fprintf(fptr, "I have new number = 1425\n");
        
        rewind(fptr);
        while (fgets(line, sizeof line, fptr)) {
            printf("%s", line);
        }
        fclose(fptr);
    }
    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM