2017-03-02 7 views
-1

1行に1単語しかない単語のtxtファイルが提供されています。配列の各要素がこのtxtファイルの行である文字列配列に読み込むように求められました。私はfgetsといくつかのソリューションを試みたが、これまで多くの運がなかった、どんな提案も大いに評価されるだろうか?行区切りのテキストファイルから文字列配列を作成する

私が試した解決策の一つは、の線に沿って何かだった:あなたはすでにこれを使用し、文字列の予想される数と最大ワード長を知っている場合

char array[45440][20]; 
char copyToArray = fgets(array[r][20], 100000, inputFile); 
for (int r = 0; r < fileLength; r++) { 
    if(copyToArray != NULL) { 
     strcpy(array[r][20], copyToArray); 
    } 
} 
+2

fgets()を呼び出すループがあります。あなたはどんな問題を抱えていますか?配列の各要素の行をコピーして、同じ文字列を繰り返し使用しないようにしてください。 – Barmar

+1

さらに詳しいヘルプが必要な場合は、どこに間違っていたか、また修正する方法を示すためにコードを投稿する必要があります。 – Barmar

+0

私が試した解決策の1つは、次の行に沿ったものでした: char copyToArray = fgets(array [r] [20]、100000、inputFile); { \t \t IF(!copyToArray = NULL){ \t \t \t strcpyの(配列[R] [20]、copyToArray(); R confusedProgrammer

答えて

0

char array[45440][20]; 
int n; 
for (n = 0; n < 45440; n++) { 
    if (scanf("%19[^\n]", array[n]) != 1) 
     break; 
    scanf("%*[^\n]); /* skip the rest of the line if any */ 
    scanf("%*c);  /* skip the newline if any */ 
} 

かこれは簡単な代替手段です:

char array[45440][20]; 
int n, c, i; 
for (n = 0; n < 45440; n++) { 
    for (i = 0; (c = getchar()) != EOF && c != '\n';) { 
     if (i < 19) 
      array[n][i++] = '\0'; 
    } 
    array[n][i] = '\0'; 
    if (c == EOF) 
     break; 
} 
関連する問題