
No.3ベストアンサー
- 回答日時:
使えないことは無いけれど
テキストモードで開くってことは、テキスト(文字または文字列)として使用したいわけで
・一文字の読み書きにはfgetc,fputc等の専用関数があるし、その方が直感的で解りやすい
fread(&ch, sizeof(char), 1, fp);
と
ch = fgetc(fp);
どちらがわかりやすいですか?
・fgetsやfscanf等、テキストの特徴を生かした、特定の文字や改行などの区切りを利用する読み込み方法に比べて、固定文字数で読み込むfreadはテキスト向けではない。
・同様に、文字列を出力するfputsやfprintfに対して、文字数を指定しなければならないfwriteはテキスト向きではない。
fputs(str,fp);
と
fwrite(str,sizeof(char),strlen(str),fp);
どちらが解りやすいでしょうか?
等、使い勝手が悪いからだと思います。
また、fread/fwriteの出番であるバイナリーデータの読み書きでは、テキストモードでopenしていると改行コードが変換されてしまうため、正しくバイナリーデータの読み書きができなくなってしまいます。
No.2
- 回答日時:
もちろんテキストファイルに対して fread や fwrite を使うことはできます. ただし, テキストファイルなので当然ですがたとえば「改行コードがそれなりに変換される」ので, そこには注意する必要があります.
規格にも, fread なら「適当な回数だけ fgetc を実行する」ようなもの, って書いてあります.
No.1
- 回答日時:
freadやfwriteを使って大丈夫ですよ。
fopenで開くときに
fopen("hogehoge.txt", "r")
で開けば読み取り専用
fopen("hogehoge.txt", "w")
で開けば書き込み専用
といったように変わってくるだけです。
入門書のサンプルはrbで開いていませんか?
bがつくとバイナリとなるのです。
この回答への補足
回答ありがとうございます。
入門書のサンプルはrbで開いています。でも
例)
fp = fopen("hogehoge.bin", "rb");
fread(&ch, sizeof(char), 1, fp);
はあっても、
fp = fopen("hogehoge.txt", "r");
fread(&ch, sizeof(char), 1, fp);
とは無いのでやはりfread, fwriteは基本的バイナリで使うものなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バイナリファイルをテキストフ...
-
ファイル内のデータを1行削除...
-
ExcelVBA サーバーの(共有フォ...
-
営業秘密の漏洩について
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
ファイルの結合
-
フルパスから最後のディレクト...
-
C言語初心者の質問失礼します。
-
テキストファイルの最終行を削...
-
jarの開き方を教えてください。
-
どんなプログラムを書いても指...
-
エクセルVBAで相対パスでファイ...
-
VB6.0で作ったプロジェクトが起...
-
「UNCパスはサポートされません...
-
COBOLのファイル出力
-
グローバル変数のよくない使い...
-
csvファイルを開かずに文字を検...
-
コンポーネント`MSCOMM32.cox'...
-
実行ファイルと実行モジュール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バイナリファイルをテキストフ...
-
テキストファイルの行数を取得...
-
fgetsで2行目から文字化け
-
ファイル内のデータを1行削除...
-
fopen(書き込みモード)でファイ...
-
【VB.Net】バイト型配列に読み...
-
改行までの一文字ずつのファイ...
-
【C言語】テキスト読み込みの行...
-
テキストファイルの先頭への文...
-
ファイルサイズ指定し、ファイ...
-
VBSで指定行に挿入
-
winsock recvでの文字化け
-
0バイトファイルの作成
-
C言語 バイナリファイルの読み...
-
freadでファイルを読み込んだ際...
-
C言語の質問です。クイズをテ...
-
fopenで開いたファイルのサイズ...
-
書き込んだファイルに改行が入...
-
EOF判定されない
-
続jファイルに文字列を書く
おすすめ情報