[英]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 指出的使用sscanf
的name
值double
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.