私はCでfgets()に本当に奇妙な問題があります。以下は私が作業しているコードです。C fgets() - ファイルの最後の行だけが配列に書き込まれますか?
FILE* conf_file;
char array[20];
conf_file=fopen("configuration","r");
if (!conf_file) printf("There is not conf file");
while(!feof(conf_file)){
// if(feof(conf_file)) break;
fgets(array,20,conf_file);
//printf("%s",array);
if (!read_id_flag){
labris_id=atoi(array);
read_id_flag=1;
printf("%d\n",id);
continue;
}
protocol_array[protocol_index]=array;
// printf("%s %s",array,protocol_array[protocol_index]);
protocol_index++;
}
int i;
for(i=0;i<10;i++){
printf("%s",protocol_array[i]);
}
fclose(conf_file);
まあ、しばらくスコープに私はそれが完璧に動作protocol_array
を印刷しようとした場合。しかし、whileスコープの後に配列を印刷しようとすると、配列の最後の行(6行はファイル内の行数)だけが出力されます。
ご了承ください。前もって感謝します。
コードをインデントしてください。 –
'char array [20]; protocol_array [protocol_index] = array; 'それが問題です。 –
私は思った。そのために残念。一部の人は私のためにそれをインデントしました。 ;) – mtndesign