
No.9
- 回答日時:
後半の話で
0x00~0x1fあたりまでは、コントロールキャラクタであり、通常のテキストエディタでは、表示されない(スペースになったり、□になったり、エディタによる)文字になります。いい加減な作りのエディタだと画面がぐちゃぐちゃになったり、誤動作するかもしれません。
たとえば、0x09はタブですから、普通のエディタならタブとして動作してしまいます。
http://ash.jp/code/ctrltbl.htm
バイナリエディタか、バイナリモードをサポートするエディタを使ってください。
あと、%sの変換では、JISやASCIIのコード系を使っている限り0x00は出力できません、何故かは、ASCIZをキーワードで検索してみてください。
No.8
- 回答日時:
回答は既にでているので、
他の部分で
>if((fp=fopen("test.txt", "w"))==NULL){
> printf("open error\n");
>}
この様にファイルがオープンできるかどうかチェックしているなら
下に抜けないようにしないと意味がありません。
この回答への補足
>この様にファイルがオープンできるかどうかチェックしているなら
>下に抜けないようにしないと意味がありません。
はい。
下に抜けているか確認してます。
fprintf(fp , "0x%02x" , wbuf[0]);
のみしか実現できないっぽいですかね^^;
No.6
- 回答日時:
よくわからない部分もありますが…
fprintf(fp,"%s",wbuf[0]);
では、文字列をファイルへ出力しようとしています。
もし、ファイルに「0x00」という文字列を出力したいということでしたら、
fprintf(fp , "0x%2x" , wbuf[0]);
ということになります。
そうではなく、ファイルに0x00という値を出力したいのでしたら話がちょっと変わってきます。
文字列の終端はNUL文字ですから、先頭がNUL文字(0x00)ですので、何も出力されません。
fprintf()を使わずに、write()を使用した方が良いと思います。
int fd;
fd = creat("test.txt" , O_CREAT | O_TRUNC);
write(fd , wbuf , 1);
close(fd);
とすると、0x00を書き込めます。
(エラー処理は省いています)
この回答への補足
fprintf(fp , "0x%2x" , wbuf[0]);
↓
fprintf(fp , "0x%02x" , wbuf[0]);
でOKですよね?
>int fd;
>fd = creat("test.txt" , O_CREAT | O_TRUNC);
・・・・
こちらの方は使用できないみたいです><

No.5
- 回答日時:
No.4 補足です。
もしも、0x00 をファイルの書き込むというのでいいのなら、単純に、
fprintf(fp, "%c", 0x00);
でOKです。
この回答への補足
#define AAA 0x00
#define BBB 0x01
#define CCC 0x02
などいくつか定数があり、
wbuf[0]には0x00や0x01,0x02など入ります。
この場合にテキストにwbuf[0]に入っている0x00や0x01,0x02を出力して、テキストエディタで開いた時に
0x00や0x01,0x02など入っている値を見たいのです。

No.4
- 回答日時:
ファイルに1文字を出力するのであれば、書式指定子が間違っています。
fprintf(fp, "%c", wbuf[0]);
です。
"%s" だと、「0 番地から始まる文字列」を強引に書き出してしまいます。
また、ファイルオープンのテキストモード/バイナリモードは、改行コードの取り扱いの違いを吸収するためのもので、今回のことに関しては、あるいは、改行コードを使わない、あるいは、'\n' という表現を使わないのであれば、どちらでも違いはありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- UNIX・Linux Debianでシェルスクリプトにおいて正規表現の条件文で[[,]]が使えないので困ってます 2 2023/01/20 09:27
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バイナリファイルをテキストフ...
-
ファイル内のデータを1行削除...
-
Visual C++ 2008 でのファイル操作
-
VS2010 MFC CStdioFileについて
-
C言語初心者の質問失礼します。
-
どんなプログラムを書いても指...
-
自民党が「高齢者の医療費負担...
-
バッファとは何ですか
-
VBAで他のプログラムが起動して...
-
FTPでputすると空ファイルが出...
-
プログラミング初心者です。プ...
-
教えてください!vectorworksに...
-
Access クエリ実行が急に非常に...
-
GetPrivateProfileStringでini...
-
VB.NETで他のプロジェクトで作...
-
Ubuntu テキストファイルをどこ...
-
ファイル出力の場所を指定
-
セルに入力されたパスでフォル...
-
営業秘密の漏洩について
-
パソコンのレスポンスが悪いの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルの行数を取得...
-
ファイル内のデータを1行削除...
-
バイナリファイルをテキストフ...
-
fgetsで2行目から文字化け
-
c言語 2つのファイルを行ご...
-
ファイル読み込みについて
-
巨大なテキストファイル(可変...
-
改行までの一文字ずつのファイ...
-
0x00をファイル出力
-
複数テキストファイルを読み込...
-
EOF判定されない
-
【VB.Net】バイト型配列に読み...
-
変数内の文字列を空にできない
-
[動的配列]C言語の勉強で簡単な...
-
続・EOF判定されない
-
0バイトファイルの作成
-
ファイルサイズ指定し、ファイ...
-
winsock recvでの文字化け
-
int型の値をファイルに保存
-
UNIXシェルプログラム等からバ...
おすすめ情報