4

我想在 C 中打开一个 .txt 文件并读取 .txt 文件中的名称值对以及不同变量中的每个值。txt 文件只有 3 行。

Name1 =  Value1
Name2 =  Value2
Name3 =  Value3

我想提取与名称 1、2 和 3 对应的值并将它们存储在一个变量中。我该怎么做?

4

3 回答 3

4

这个答案显示了最好的方法

#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 );
}

剩下的交给你去做。

于 2012-11-15T01:17:32.100 回答
1

您可以使用 fgets 函数逐行读取文件。给出字符串中的每一行。然后使用 strtok 函数将字符串拆分为使用空格作为分隔符的标记。所以你会得到Value1,Value2 ...

于 2012-11-15T01:20:41.040 回答
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);   
于 2012-11-15T01:19:29.253 回答