我需要閱讀下列文本文件:如何使用這兩種scanf函數和與fgets讀取文件
2 2
Kauri tree
Waterfall
0 0 W S
0 1 E N
我想用scanf
獲得第一行,並使用fgets
第二和第三然後再使用scanf
作爲其餘行。
我寫了這樣的代碼:
#include <stdio.h>
#define NUM_OF_CHAR 2
int main()
{
int node, edge;
scanf("%d %d", &node, &edge);
FILE* fp;
fp = stdin;
char* str[NUM_OF_CHAR]; //should be char str[NUM_OF_CHAR];
for (int i = 0; i < node; i++) {
fgets(str[i], 2, fp); //should be fgets(str, 2, fp);
}
printf("%s", str[0]); //printf("%s", str);
}
我進入輸入是:
2 2
hello
我Segmentation fault
我看到了類似的問題在這裏,一個人提到我可以撥打fgets
一次獲取第一行,但忽略它,然後再次使用fgets
獲得第二行。但我不知道該怎麼做。
使用fgets(),然後使用strtok()來分割字符串。 –
至於你的*當前*問題,你得到的崩潰,現在想一下。你聲明瞭一個指向'char'的指針數組,但是你絕不會使這些指針實際上*指向任何地方。 –
嗨馬特。感謝回覆。我對c是新手。我不知道如何使用strtok()。我現在會查找它。 – chrisgjh