int i=0;
int numProgs=0;
char* input[500];
char line[500];
FILE *file;
file = fopen(argv[1], "r");
while(fgets(line, sizeof line, file)!=NULL) {
/*check to be sure reading correctly
add each filename into array of input*/
input[i] = (char*)malloc(strlen(line)+1);
strcpy(input[i],line);
printf("%s",input[i]);/*it gives the hole line with\n*/
i++;
/*count number of input in file*/
numProgs++;
}
/*check to be sure going into array correctly*/
fclose(file);
私は動的に行う必要があるので、各行の入力txtのサイズはわかりません。 この型のchar * input []を使う必要がありますし、int numProgsで行番号を保持する必要もあります。 入力テキストファイルに複数の行があり、各行の文字サイズが不明です。テキストファイルを動的に読み込んでCのポインタchar配列に入れます
可能な重複:http://stackoverflow.com/questions/8236/how-do-you-determine-the-size-of-a-file-in-cあなたが言うにメモリを割り当てる呼び出し – schil227
' char * line'を使用します。 'fgets'を呼び出した後、' newline'が読み込まれたかどうかを確認します。そうだったら、あなたは全体のラインを手に入れました。そうでない場合は、より大きい配列を再割り当てし、行全体を取得するのに必要な回数だけさらに読み込みます。しかし、各行の後に 'free(line)'をしないでください。 –
@ schil227このQはファイル行数です。 – BLUEPIXY