1
我生成是下列格式的簡單的製表符分隔的文件:試圖讀取製表符分隔字符串的文件,並將它們放入數組並輸出,但我只得到一個字符?
a aa aaa
b bb bbb
...
...
y yy yyy
z zz zzz
我試圖讀取文件線由行,並把字符串轉換爲一個字符串數組,然後輸出字符串數組的內容。這裏是我的代碼:
#include <stdio.h>
#include <stdlib.h>
int main() {
int BUF = 1024;
FILE * fp;
char * line = NULL;
size_t len = 0;
fp = fopen("~/testdataStrings.txt", "r") ;
ssize_t read;
char n[BUF] ;
int offset,index = 0 ;
while ((read = getline(&line, &len, fp)) != -1) {
char* array[3] ;
index = 0 ;
while (1 == sscanf(line, "%s%n[^\n]", n, &offset)) {
// printf("%s\n", n) ; //n contains the proper value, a,aa,or aaa
array[index] = n ;
line += offset ;
index++ ;
}
int i = 0;
while(i < 3) {
printf("%s\n", array[i]) ;
i++ ;
}
}
}
預期輸出是:A,AA,AAA,B,BB,BBB等通過換行分隔,但我正在逐漸:AAA,AAA,AAA,BBB,BBB,BBB等由換行符分隔?我哪裏做錯了?
謝謝。
'char * array [3]'聲明指向char的指針數組而不是數組o f字符串。所以要麼動態分配它們,要麼聲明類似於char數組[3] [BUF]的東西。 – VoidPointer