• ベストアンサー

fgetsに関して

こんにちは。 最近C言語について学び始めた者なのですが、 while(fgets(pdb,100,fpr)!= NULL) { fprintf (fpw,"%s",pdb); } のように、一行あたりの文字数が50~70程度のテキストファイルを 読み込み別のファイルに移そうとしても何故か偶数行しか読み込んでくれません。 原因として考えられるのはどのようなことでしょうか? 御教示願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

提示されたソースをそのままgccでコンパイルして実行してみました。 こちらでは、正常に実行できました。 偶数行しか読込まない、という現象は起きませんでした。 質問者さんは、どんな入力データのとき、どんな結果を得られていますか?

LPLBIF
質問者

お礼

回答ありがとうございます。 何とか解決することができました。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

書かれたソースを「すべて」見せてください。 断片だけでは、いかんともしがたいです。

LPLBIF
質問者

補足

すみません。 以下のとおりです。 #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; }

関連するQ&A

専門家に質問してみよう