gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:08:13 25 4
gpt4 key购买 nike

我需要将 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("%s\n", string2);


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

fclose(file);
return 0;
}

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

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

最佳答案

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

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

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

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

关于c - 如何将文件(IN C)中的每一行保存在变量中? :),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33779295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com