• ベストアンサー

txtファイルの読込み時に1033文字を超えると

txtファイルをfopen_s関数にモード"r"で読み込んでいます。 それをwhile (fgets(~~) != NULL) { ~ } で 1行ずつ読み込んでいるのですが、 この時1行の文字数が半角1033文字を超えていると 1034文字目からが「2行目扱い」になり 予期せぬ困った挙動を起こしてしまいます。 (Windowsのメモ帳では1035文字目から無理矢理改行表示されますが) なぜこの様な事が起こるのでしょうか? どうやって回避するのが一般的なのか教えて頂けますと幸いです。 ※OS:WindowsXP  コンパイラ:Visual C++2008 EE

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

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

fegtsで指定しているバッファのサイズはいくらですか? >Windowsのメモ帳では1035文字目から無理矢理改行表示されますが 1034文字がCRLF(X'0D0A')では無いですか。

noname#202167
質問者

お礼

>fegtsで指定しているバッファのサイズはいくらですか? 一度も変える事なく1024をずっと使っておりました・・orz 1033という位置がメモ帳で改行があるから改行コードが入るか 何か仕様でもあるのかと早とちりしてしまい orz ご回答、ありがとうございました。無事解決しました。

その他の回答 (1)

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.2

ソースコードを貼り付けるのが、最善と思われ。 1034文字以降でも普通に読み込めるので、なんとも回答の仕様がない。

noname#202167
質問者

お礼

私も以前読み込めた経験が有るハズなのに・・? と思いつつなぜか早とちりを・・orz ご回答、ありがとうございました。

関連するQ&A

専門家に質問してみよう