如何将文件(IN C)中的每一行保存在变量中? :)
How to save every line in file (IN C) in a variable? :)
我需要将 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()
读取并存储尾随换行符,这可能会导致字符串比较出现问题,您也需要注意这一点。
请注意,在使用 returned 指针之前,您应该始终检查 fopen()
的 return 值是否成功。
我需要将 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()
读取并存储尾随换行符,这可能会导致字符串比较出现问题,您也需要注意这一点。
请注意,在使用 returned 指针之前,您应该始终检查 fopen()
的 return 值是否成功。