C言語のバイナリモードでのfscanf関数の使い方について教えて下さい。
2*2のint型配列バイナリデータを読み込んで、要素一つ一つを出力したいのですが、
fscanfでの書式指定の仕方がよく分かりません。
fscanf(入力元,"???",&入力先)の???の部分はどう指定すればよいのでしょうか?
下記のようなプログラムを書いたのですが、fscanfでデータを読み込めず、
data=0という出力で無限ループに入ってしまいます。
C言語初心者なので、かなり初歩的な質問かと思いますが、
よろしくお願いします。
--------------------------------------
char *fi;
int data;
fi = argv[1]; /* 2x2のint型配列バイナリデータを指定 */
input = fopen(fi,"rb");
while(!feof(input)){
fscanf(input,"%d",&data);
printf("data=%d\n",data);
}
---------------------------------------
No.1ベストアンサー
- 回答日時:
int型が32bit、 ファイルとCPUのエンディアンが一致している、として
あえてfscanfを使うなら
fscanf(input,"%4c",(char *)(&data)) ;
だけど、私ならfreadを使います。
fread(&data, sizeof(int), 1, input)
>fscanf(input,"%4c",(char *)(&data)) ;
区切り幅を数値で指定できるんですね。。。勉強になります。
ご指摘の通り、実際はfreadの方が良いとは思うんですが、
勉強がてらfscanfでのやり方も知っておきたかったので質問させていただきました。
初歩的な質問でしたが、素早いご返答ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の中に重複文字列があるか...
-
C言語のバイナリモードでのfsca...
-
awkスクリプトでダブルクォーテ...
-
ListBoxのデータを高速でファイ...
-
ExcelをCSV書き出す場合のシー...
-
C言語で特定の行を抽出する方法...
-
window.open でのファイル指定方法
-
パスから最後のディレクトリだ...
-
fgets で値が取得できない
-
ReadLineでの読み出し行を指定する
-
CSVデータの編集の際の重複チェ...
-
ファイル出力の改行コードをLFに
-
ifstream を利用した1行分のテ...
-
vba dir の相対パス
-
オープンしたファイルで行の連結
-
perlで、後ろの行を読んで、前...
-
VBAのFileFormatで悩んでいるこ...
-
全角と半角文字が混在している...
-
Arduino Excel
-
空白文字 \\f と\\v の違いに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の中に重複文字列があるか...
-
Visual C++を用いたシリアル通信
-
perlで複数行のデータを自由に...
-
要素を削除する最適な方法
-
C言語のバイナリモードでのfsca...
-
Perl ファイルを読込んで日付の...
-
2次元の配列にデータを格納したい
-
pandasでまとめてインデックス...
-
[arduino]数値の大きなデータを...
-
行・列の整理! perl
-
<IN>; を単独で使う
-
データの日付でソートをしたい
-
PerlでInline Cを使った配列の...
-
perl-cgi 文字の長さでソートし...
-
Pythonでegrep機能をつかいたい
-
batファイルでrenameができませ...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
おすすめ情報