如何读取文件的第一行并与在 C 中输入的内容进行比较?我是 C 语言新手,需要一些支持

问题描述 投票:0回答:1

我正在尝试将表数据写入 C 中的文件,我只想在一次输入后文件的第一行保持不变!我怎样才能做到这一点 ?预先感谢

我尝试了很多方法,但似乎没有一个适合我想要的。

这是我的代码

ỉnt main(){
    FILE *fptr;
    fptr = fopen("text.txt", "w");  
    if(strcmp(fgets("123", 1, fptr),"123")==0){
        fclose(fptr);
    }
    else{
        fprintf(fptr, "123");
        fclose(fptr);
    }
}
c file compare
1个回答
0
投票

这里有一些问题:

  • 您必须包含
    <stdio.h>
    <string.h>
  • 您应该使用
    "r"
    而不是
    "w"
    ,
  • 以读取模式打开文件
  • 您应该使用本地数组来读取该行。
  • 您应该在字符串中包含尾随换行符以进行比较

这是修改后的版本:

#include <stdio.h>
#include <string.h>

ỉnt main() {
    FILE *fptr = fopen("text.txt", "r");  
    if (fptr) {
        char buf[80];
        if (fgets(buf, sizeof buf, fptr)) {
            if (strcmp(buf, "123\n") == 0) {
                printf("file contains 123\n");
            } else {
                printf("file does not contain 123: %s\n", buf);
            }
        } else {
            printf("file is empty\n");
        }
        fclose(fptr);
    } else {
        printf("cannot open file %s\n", "text.txt");
    }
    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.