0

入力ファイルを読み取り、char** と int* の内容を変更する関数があります。機能は次のとおりです。

void
input_parser(arguments* args, char** input, int* files) {
   char buffer[MAX];
   FILE *fr;
   fr = fopen(args->file,"r");
   if (fr == NULL) {
       printf("No correct input file was entered\n");
       exit(0);
   } 
   while(fgets(buffer,MAX,fr) != NULL) {
       input[*files] = strtok(buffer,"\n");
       (*files)++;
   }
   fclose(fr);
   return;
}

メインプログラムで次のように入力とファイルを定義しました。

char* input[25];
files = 0;

次のように関数を呼び出します。

input_parser(args, input, &files);

入力ファイルには、次の 3 行が含まれます。

output1.xml
output2.xml
output3.xml

while ループ中に「現在の」値が正しく読み取られますが、すべての入力 [*] に格納されることに気付きました。

input[0] = output3.xml
input[1] = output3.xml
input[2] = output3.xml

ここで何がうまくいかないのか誰かが何か知っているなら、私は大いに感謝します。

4

2 に答える 2