入力ファイルを読み取り、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
ここで何がうまくいかないのか誰かが何か知っているなら、私は大いに感謝します。