2014-12-25 77 views
0
int main(){ 

FILE *file = fopen ("C:\\input.txt", "r"); 
int i=0, j=0, k=0; 

char *result[10][10]; 
char line[100];  
char *value; 
char *res[100][100]; 

for(i=0; i<=9; i++){   
    for(j=0;j<=9;j++){ 
     result[i][j] = NULL; 
    } 
} 

while(fgets(line, sizeof(line), file)){ 
    char *array=strtok(line,"\n"); 
    res[0][0]=strdup(array); 

    printf("\n\n\n %s RES \n",res[0][0]); 
    array=strtok(array,"\n"); 
    res[0][1]=strdup(array); 

    printf("\n\n\n %s RES \n",res[0][1]); 
    array=strtok(line,"\n"); 
    res[0][2]=strdup(array); 
} 

我想將數組逐行存儲在txt文件中。我的輸入文件中有3行。我希望每行都存儲在一個數組中。我怎樣才能做到這一點 ?這總是存儲第一個元素。使用strtok存儲數組

我輸入文件:

George :Math1,History2,Math2 
ELizabeth :Math2,Germany1,spanish1 
Adam  :Germany1,History2,Math1 
+0

這始終是存儲在res [] []相同的薄:第一行總是 – joseph

+0

我想將我的輸入文件中的每一行存儲在一個數組中。例如,我想res [0] [0] =「George:Math1,History2,Math2」,res [0] [1] = EL2D:Math2,Germany1,spanish1和res [0] [2] = Adam:Germany1 ,History2,Math1 @giorgim – joseph

+0

將''\ n「'傳遞給'strtok()'的想法到底是什麼?以供參考:http://man7.org/linux/man-pages/man3/strtok.3.html – alk

回答

0

對於讀那些三線到數組你爲什麼不使用這樣簡單的事情,因爲這:

char res[100][100]; 
int i =0; 
while(fgets(line, sizeof(line), file)){ 
     strcpy(&res[i][0],line); 
     printf("%s \n",&res[i][0]); 
     i++; 
} 
+0

感謝你的真實 – joseph