
fwrite処理を行っているのですが、うまくファイルに出力されません。どこがおかしいか分からない次第です。
返答のほど、よろしくお願いします。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct ll{
long int bango;
char name[20];
char denwa[15];
};
FILE *fpbin; /*FILE構造体(グローバル変数)*/
struct ll *memalloc(void);
void main(void)
{
struct ll *p;
p = memalloc();
fpbin = fopen("bin","w+b");
printf("追加するNo 名前 tel >\n");
scanf("%ld %s %s", &p -> bango, p -> name, p -> denwa);
printf("%ld %s %s\n", p -> bango, p -> name, p->denwa);
fwrite(p,sizeof(struct ll),1,fpbin);
fclose(fpbin);
}
struct ll *memalloc(void)
{
struct ll *p;
if ( (p = (struct ll *)malloc(sizeof(struct ll))) != NULL ){
return p;
}
printf("メモリの動的割当に失敗しました。\n");
exit (1);
return p;
}
No.3ベストアンサー
- 回答日時:
私の環境(unix)で試してみましたが、
『うまく』出力されてると思いますよ。
=== 実行結果 ===
追加するNo 名前 tel >
123 hoge 123-4567
123 hoge 123-4567
=== ファイルの中身 ===
00 00 00 7B
68 6F 67 65 00 00 31 A5 00 00 00 10 7B 03 79 80 40 00 31 C8
31 32 33 2D 34 35 36 37 00 03 7A 14 00 00 00 00
※見やすいように、
1行目はbango 2行目はname 3行目はdenwa
と害行してあります。
※nameとdenwaのデータの後半にはゴミが入っているようです
※3行目のdenwaはアライメントされて16バイトになっています
yasuchさんのとおり打ってバイナリエディタをよくみるときちんと表示されていました。ごみが表示されていたので間違って表示されているのかと思っていましたが違っているようでした。どうもありがとうございました。
No.2
- 回答日時:
プログラムはエラーチェックが甘いですが基本的には問題なさそうです。
。。「うまくファイルに出力されません」の具体的な現象はどんなものでしょうか?エラー表示されて止まりますか?ファイルが作成されませんか?ファイルの中身がぐちゃぐちゃですか?
ファイルの内容を見る場合は、バイナリファイルですのでバイナリエディタやダンプツールで見ないとダメです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
char型2つを結合し、short型に...
-
空白を含んだ文字列がうまく格...
-
困ってます!書き方がわかりま...
-
c言語で文書を読み込み、単語の...
-
なぜ無限ループになるかが分か...
-
c言語 プログラム
-
Cでファイルの行数をカウントす...
-
#defineが使用するメモリ領域に...
-
C言語で複数列のデータを1列の...
-
【C言語】全角文字の配列を、全...
-
fread(),fwrite()等について
-
ビルドエラーの対処がわからな...
-
fwrite処理について
-
C言語について質問です。読み取...
-
タイムカードのシステムを作り...
-
ファイル操作で全角空白を消す
-
文字列の入力
-
WinInetのInternetOpenUrl関数...
-
プログラミングの授業の課題です
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
#defineが使用するメモリ領域に...
-
【C言語】全角文字の配列を、全...
-
printf による16進表示について
-
reallocでエラー
-
構造体メンバの初期化
-
空白を含んだ文字列がうまく格...
-
矢印キーを押下してコンソール...
-
char型2つを結合し、short型に...
-
C言語のシリアル通信について
-
構造体の配列のアロケート等の方法
-
プログラミングの授業の課題です
-
C言語で複数列のデータを1列の...
-
エラーについて質問です。
-
WinInetのInternetOpenUrl関数...
-
警告 W8075 問題のあるポインタ...
-
C++で指定文字列のカウント方法...
-
ごみが入りますか?
-
ファイルを辞書順に並べ替える...
-
ファイル入力のエラー
おすすめ情報