我想在C中打开一个.txt文件,并读取.txt文件中的名称值对和不同变量中的每个值。 txt文件只有3行。
Name1 = Value1
Name2 = Value2
Name3 = Value3
我想提取对应于名称1,2和3的值,并将它们存储在变量中。我该怎么做呢?
答案 0 :(得分:3)
最佳方式显示在this answer
中#include <string.h>
char *token;
char *search = "=";
static const char filename[] = "file.txt";
FILE *file = fopen ( filename, "r" );
if ( file != NULL )
{
char line [ 128 ]; /* or other suitable maximum line size */
while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
{
// Token will point to the part before the =.
token = strtok(line, search);
// Token will point to the part after the =.
token = strtok(NULL, search);
}
fclose ( file );
}
我会让剩下的让你去做。
答案 1 :(得分:1)
您可以使用fgets函数逐行读取文件。给出字符串中的每一行。 然后使用strtok函数将字符串拆分为令牌,使用空格作为分隔符。 所以你会得到Value1,Value2 ......
答案 2 :(得分:0)
为文件创建指针。
FILE *fp;
char line[3];
打开文件。
fp = fopen(file,"r");
if (fp == NULL){
fprintf(stderr, "Can't open file %s!\n", file);
exit(1);
}
逐行阅读内容。
for (count = 0; count < 3; count++){
if (fgets(line,sizeof(line),fp)==NULL)
break;
else {
//do things with line variable
name = strtok(line, '=');
value = strtok(NULL, '=');
}
}
别忘了关闭文件!
fclose(fp);