掲示板ランキング  かまぼこ(さつまあげ)  かまぼこ(はんぺん)  かまぼこ(笹かまぼこ)


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.6499

バイナリ変換
投稿者---エル(2006/09/15 10:36:12)


テキストファイルから文字、数字を含む内容を読み込み
その内容の形のままでバイナリ変換しようと考えていましたが
うまく出力されませんでした。

どなたかご教授お願いします。

私は
int c;
while(fscanf(fp, "%c", c));
でファイルを読み込み
printf("%02X", c);
で出力させました。(考えが浅はかですみません)



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:バイナリ変換 6500 wis 2006/09/15 10:48:33


No.6500

Re:バイナリ変換
投稿者---wis(2006/09/15 10:48:33)


>うまく出力されませんでした。
あなたが、どのような結果を期待して、
どのような結果になったのがを教えていただけませんか?


この投稿にコメントする

削除パスワード

No.6502

Re:バイナリ変換
投稿者---エル(2006/09/15 11:32:15)


KHOEOJHOE 8473
GUI 73 958 392
↑のようなテキストで表示された場合(文字数字は適当に打ちました)

4B 48 4F 45 4F 4A 48 4F 45 81 40 38 34 37 33 0D 0A
47 55 49 20 37 33 20 39 35 38 20 33 39 32 0D 0A
っとバイナリ変換ソフトを使えばその形の通り変換されます。

これと同じように表示させたいです。
私の作ったやつでは
4B484F454F4A484F458140383437330D0A47554920373320393538203339320D0A
っと改行とスペースが無視され表示されました。


この投稿にコメントする

削除パスワード

No.6504

Re:バイナリ変換
投稿者---Blue(2006/09/15 11:46:56)


>っと改行とスペースが無視され表示されました。
改行文字の位置で改行したいのでしょうか?
スペースは単にprintfで空白を入れていないだけですよね?

printf("%02X ", c);
if ( c == '\n' ) printf( "\n" );

ちなみに、単純に1バイト読むのであれば、fgetc を使ったほうが便利。


この投稿にコメントする

削除パスワード

No.6509

Re:バイナリ変換
投稿者---エル(2006/09/15 13:08:33)


ご指摘ありがとうございます。
表示させるだけなら形どうりにする事ができました。



この投稿にコメントする

削除パスワード

No.6513

Re:バイナリ変換
投稿者---エル(2006/09/15 13:57:54)


またまたすみません。

先ほどの形のまま テキストにファイル出力させようと
fprintf(fp,"%02X",c);
っとしファイルを作りましたが出来たファイルは改行がなく横並びになりました。
printf("%02X ",c);
if ( c == '\n' ) {
printf( "\n" );
}では綺麗に表示させることができます。

どうしてでしょうか?


この投稿にコメントする

削除パスワード

No.6514

Re:バイナリ変換
投稿者---nano(2006/09/15 14:01:50)


>    printf("%02X ",c);
>    if ( c == '\n' ) {
>        printf( "\n" );

のコードを応用してください。


この投稿にコメントする

削除パスワード

No.6515

Re:バイナリ変換
投稿者---エル(2006/09/15 14:10:07)


printf("%02X ",c);
fprintf(fp,"%02X ",c);
if ( c == '\n' ) {
printf( "\n" );
}
ではどこがいけないのでしょうか・・・・


この投稿にコメントする

削除パスワード

No.6516

Re:バイナリ変換
投稿者---nano(2006/09/15 14:14:40)


>ではどこがいけないのでしょうか・・・・

改行を見つけたとき、printf関数で標準出力へ出力するだけで
よいのでしょうか?
テキストファイルへ出力するための処理が必要ではありませんか?


この投稿にコメントする

削除パスワード

No.6518

Re:バイナリ変換
投稿者---Blue(2006/09/15 14:18:46)


>printf("%02X ",c);
>fprintf(fp,"%02X ",c);
>if ( c == '\n' ) {
>printf( "\n" );
>}
>ではどこがいけないのでしょうか・・・・
ファイルに対して改行文字を出力していません。

すこしまともにして、
if ( c == '\n' )
{
    fprintf( fp, "%02X%c", c, c );
}
else
{
    fprintf( fp, "%02X ", c );
}


ちなみに、読み込み用の fp と 書き込み用の fp は違いますよね?


この投稿にコメントする

削除パスワード

No.6517

Re:バイナリ変換
投稿者---kz3(2006/09/15 14:15:55)



>   printf("%02X ",c);
>   if ( c == '\n' ) {
>       printf( "\n" ); // これが何のためにあるのかを考えてみてください。
>   }
>では綺麗に表示させることができます。
>どうしてでしょうか?

どうしてそれで綺麗に表示されるのか理解できていないうちに
>ご指摘ありがとうございます。
>表示させるだけなら形どうりにする事ができました。
なんて言ったんですか?




この投稿にコメントする

削除パスワード

No.6519

Re:バイナリ変換
投稿者---エル(2006/09/15 14:34:20)


> printf("%02X ",c);
> if ( c == '\n' ) {
> printf( "\n" );
簡単に言えば読み込んでいて\n改行へ達した場合
表示も改行させる。
っではないのでしょうか・・・・

Blue様のご教授によりうまく出力されましたが
こちらのほうが私にはまだ理解できていないので
勉強させていただきます。

皆様ありがとうございました。




この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ