我有这段代码,我想从文本文件中读取每一行,然后将其打印到标准输出。无缘无故只将文件的最后一行保存在该字符数组中。任何提示为什么(一些解释是)?
9 int main(){
10 FILE * f;
11 char buffer[255];
12 char * arr[255];
13 int i=0,n;
14
15 f = fopen("input.txt", "r");
16 while(1){
17 if(fgets(buffer,255,f) != NULL ){
18 arr[i++] = buffer;
19 }else break;
20 }
21 n=i;
22 for(i=0;i<n;i++){
23 printf("%s",arr[i]);
24 }
25
26 fclose(f);
27 return 0;
28 }