Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从C语言中的文件中读取名称-值对_C_File - Fatal编程技术网

从C语言中的文件中读取名称-值对

从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];/*或其

我想用C打开一个.txt文件,读取.txt文件中的名称-值对和不同变量中的每个值。txt文件只有3行

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…

我按照您希望的格式进行了编辑,但我不确定。基本上我去掉了绒毛。