我有一个非常奇怪的问题,在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次(6是文件中的行数)。
任何想法是赞赏。提前致谢。
请缩进你的代码.. – 2012-03-05 09:29:32
char array [20]; protocol_array [protocol_index] = array;'这就是问题所在。 – 2012-03-05 09:30:26
我以为我做到了。对不起。有些人为我缩进。 ;) – mtndesign 2012-03-05 09:31:11