簡體   English   中英

從 FILE 中讀取行

[英]Read lines from FILE

我想知道從文件中讀取行的最佳方法是什么,因為我有一個文件,我保證它將如下所示:

type
string table
color
string brown
height
int 120
cost
double 129.90

每次,一個詞,那么我就會有兩個詞。

我知道 fscanf 返回它掃描的 var 數字的值,這就是我在這里遇到問題的原因,因為有一次該行有 1 個參數,而下一行有 2 個參數。

總是第一行只是一個字符*,不超過 10,然后下一行有 3 個選項。 .

謝謝你。

從文件的結構來看,我認為它可以分組為一個結構。 並且 fscanf 可以像這樣使用:

#include <stdio.h>
#include <stdlib.h>

#define SIZE 100

typedef struct Node {
  char name[SIZE];
  char type[SIZE], value[SIZE];
} Node;

int main() {
  FILE *pFile = fopen("sample-test.txt", "r");
  if(pFile == NULL) {
    fprintf(stderr, "Error in reading file\n");
    return EXIT_FAILURE;
  }
  Node nodes[SIZE];
  int nRet, nIndex = 0;

  // Just to make sure it reads 3 tokens each time
  while((nRet = fscanf(pFile, "%s%s%s", nodes[nIndex].name, 
                       nodes[nIndex].type, nodes[nIndex].value) == 3)) 
    nIndex++;

  for(int i = 0; i < nIndex; i++)
    printf("%s %s %s\n", nodes[i].name, nodes[i].type, nodes[i].value);

  return EXIT_SUCCESS;
}

閱讀文件后,您可以檢查您的結構數組以找到所需的int ,根據 Some Programmer Dude 指出的使用sscanfnamedouble

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM