
C言語について教えて欲しいです。
ファイルの中身をコピーするプログラムを作ってます
aというファイルには11111が入ってるとします。
while(fread(&c,1,1,fpin)==1)
{
fwrite(&c1,1,fpout)
}
解答はこうなってましたが、
freadの返り値は読み込んだデータの個数なので、ここでは1個なのでaのファイルの1個目の1しかコピーできなくないですか?
私は以下のようにしてました。
fread(&c,1,5,fpin);
fwrite(&c1,5,fpout);
No.6ベストアンサー
- 回答日時:
C言語 fread 使い方
■書式
「ファイルオープン時はファイルポインタはファイルの先頭にありますが、
読み込むとそのバイト数分だけファイルポインタが後ろにずれます。
この仕組みにより順番にファイルを読み込んでいくことが可能になっているわけです。」
https://bituse.info/c_func/44
C言語 fwrite 使い方
No.7
- 回答日時:
>1バイトしか読み込まないなら、永遠に最初の文字を読み込むと思ったのですが...
間違いです
>この関数は一つ目の1バイトを読み込んだら勝手に次の1バイトを読み込む仕様ということでしょうか?
そうですよ。あってます。
No.3
- 回答日時:
一回のfread&fwriteでは1バイトずつですが、それをwhileでファイルの終わりになるまで繰り返すので、ファイル全体を読み書きします。
返り値は0か1しかあり得ませんが、「返り値が0」であれば「ファイルが終わり」ということです(厳密には読み取りエラーの可能性もあるが)。
fread(&c,1,5,fpin);
と書いても、返り値は0か5だけでなく1~4という可能性も考慮する必要があります。
1バイトしか読み込まないなら、永遠に最初の文字を読み込むと思ったのですが...
この関数は一つ目の1バイトを読み込んだら勝手に次の1バイトを読み込む仕様ということでしょうか?
No.1
- 回答日時:
>fread(&c,1,5,fpin); fwrite(&c1,5,fpout);
・6バイト以上のファイルを正しくコピーできない。
・変数cの型がただのcharならメモリ破壊を起こす。
――恐れがあるコードかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 100バイトのバイナリファイルを読み込んで別のファイルに書き込みたいのですが、型をどうすればいいのか 1 2022/11/03 17:11
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- Excel(エクセル) Excel ハイパーリンク設定について 教えてください 例なんですが、 VBAにてファイル1の列Gに 2 2022/11/04 17:52
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- C言語・C++・C# C言語で移動平均のプログラムを作りたいのですが、数値をファイルから取ってきて計算をするプログラムはど 1 2022/09/29 01:21
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
ファイルサーバ上のファイルが...
-
エクセルのハイパーリンクがコ...
-
[エクセル]コピーするとオブジ...
-
Vba初心者です。下記のコード助...
-
バッチファイル 別ファイルにリ...
-
frxファイルの役目
-
同じファイル名 上書きしないフ...
-
サブフォルダ(データ)にある...
-
バッチファイルのコピーで
-
xcopyでのバッチコピー方法でコ...
-
エクセル 同じデータなのに違う...
-
エクセルVBAで開いているファイ...
-
bat 同名ファイルコピー時にリ...
-
VB6でのファイルコピーの終了検...
-
ハイフネーションされている英...
-
FTPとファイルコピーの違いにつ...
-
アクセス クエリを別のファイ...
-
エクセル2010、図が大きすぎま...
-
現在のブックを閉じないで、マ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
バッチファイル XCOPYで上書き...
-
frxファイルの役目
-
エクセルのハイパーリンクがコ...
-
Vba初心者です。下記のコード助...
-
ファイルサーバ上のファイルが...
-
同じファイル名 上書きしないフ...
-
[エクセル]コピーするとオブジ...
-
xcopyでのバッチコピー方法でコ...
-
bat 同名ファイルコピー時にリ...
-
バッチファイル 別ファイルにリ...
-
バッチファイルのコピーで
-
アクセス クエリを別のファイ...
-
DOSコマンドのコピー完了判定
-
FTPとファイルコピーの違いにつ...
-
vbsでファイルやフォルダのコピ...
-
エクセル2010、図が大きすぎま...
-
現在のブックを閉じないで、マ...
-
vbsでExcelのシートをコピーす...
-
共有フォルダへのフォルダ作成...
おすすめ情報