如何将文件(in C)中的每一行都保存在变量中?:)



我需要将c中的每一行文本文件保存在一个变量中。这是我的代码

int main()
{
    char firstname[100];
    char lastname[100];
    char string_0[256];
    char string[256] = "Vanilla Twilight";
    char string2[256];
    FILE *file;
    file = fopen("record.txt","r");
    while(fgets(string_0,256,file) != NULL) 
    {
        fgets(string2, 256, file);
        printf("%sn", string2);

        if(strcmp(string, string2)==0)
            printf("A match has been found");
    }
    fclose(file);
    return 0;
}

有些行存储在变量中并打印在cmd上,但有些行被跳过。

我该怎么办?当我尝试sscan()时,所有的行都是完整的,但只打印每行的第一个字。我也尝试过ffscanf(),但也不起作用。在fgets()中,每行的单词都是完整的,但正如我所说,有些行被跳过(甚至是第一行)。我只是一个编程初学者,所以我真的需要帮助(

您将跳过每隔奇数行的检查,因为您有两个连续的fgets()调用,而只有一个strcmp()。将代码缩减为

while(fgets(string_0,256,file) != NULL) 
    {    
        if( ! strcmp(string_0, string2) )
            printf("A match has been foundn");
    }

FWIW,fgets()读取并存储尾部换行符,这可能会导致字符串比较问题,您也需要注意这一点。

注意,在使用返回的指针之前,应该始终检查fopen()的返回值是否成功。

最新更新