从C语言中的文件中读取名称-值对
我想用C打开一个.txt文件,读取.txt文件中的名称-值对和不同变量中的每个值。txt文件只有3行从C语言中的文件中读取名称-值对,c,file,C,File,我想用C打开一个.txt文件,读取.txt文件中的名称-值对和不同变量中的每个值。txt文件只有3行 Name1 = Value1 Name2 = Value2 Name3 = Value3 我想提取对应于名称1、2和3的值,并将它们存储在变量中。我该怎么做呢?最佳方法如图所示 #包括 字符*令牌; char*search=“=”; 静态常量字符文件名[]=“file.txt”; FILE*FILE=fopen(文件名,“r”); 如果(文件!=NULL) { 字符行[128];/*或其
Name1 = Value1
Name2 = Value2
Name3 = Value3
我想提取对应于名称1、2和3的值,并将它们存储在变量中。我该怎么做呢?最佳方法如图所示
#包括
字符*令牌;
char*search=“=”;
静态常量字符文件名[]=“file.txt”;
FILE*FILE=fopen(文件名,“r”);
如果(文件!=NULL)
{
字符行[128];/*或其他合适的最大行大小*/
while(fgets(line,sizeof line,file)!=NULL)/*读取一行*/
{
//标记将指向=。
令牌=strtok(行,搜索);
//标记将指向=。
token=strtok(空,搜索);
}
fclose(文件);
}
剩下的我留给你做。为文件创建指针
FILE *fp;
char line[3];
fp = fopen(file,"r");
if (fp == NULL){
fprintf(stderr, "Can't open file %s!\n", file);
exit(1);
}
打开文件
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, '=');
}
}
您可以使用fgets函数逐行读取文件。给出字符串中的每一行。 然后使用strtok函数将字符串拆分为标记,使用空格作为分隔符。
因此,您将获得Value1、Value2…我按照您希望的格式进行了编辑,但我不确定。基本上我去掉了绒毛。