- ベストアンサー
fgetsに関して
こんにちは。 最近C言語について学び始めた者なのですが、 while(fgets(pdb,100,fpr)!= NULL) { fprintf (fpw,"%s",pdb); } のように、一行あたりの文字数が50~70程度のテキストファイルを 読み込み別のファイルに移そうとしても何故か偶数行しか読み込んでくれません。 原因として考えられるのはどのようなことでしょうか? 御教示願います。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
提示されたソースをそのままgccでコンパイルして実行してみました。 こちらでは、正常に実行できました。 偶数行しか読込まない、という現象は起きませんでした。 質問者さんは、どんな入力データのとき、どんな結果を得られていますか?
その他の回答 (1)
- asuncion
- ベストアンサー率33% (2127/6289)
書かれたソースを「すべて」見せてください。 断片だけでは、いかんともしがたいです。
補足
すみません。 以下のとおりです。 #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, char *argv[]) { char fnamer[50],fnamew[52]; char pdb[100]; int i=0,j=0; FILE *fpr , *fpw; if (argc == 1) { printf("Input PDB file name (including ANIS). \n"); scanf("%s",fnamer); } else strcpy(fnamer,argv[1]); fpr = fopen(fnamer,"r"); if (fpr == NULL) { printf("File not found.\n"); return 0; } sprintf(fnamew,"a_%s",fnamer); //書き込み用ファイル名の出力 fpw = fopen(fnamew,"w"); //書き込み用ファイル作成 while(fgets(pdb,100,fpr)!= NULL) { fprintf (fpw,"%s",pdb); } fclose(fpr); fclose(fpw); return 0; }
お礼
回答ありがとうございます。 何とか解決することができました。