掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ビックエンディアンするには? (ID:52687)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>これは不要です。 >#使っていないから。 > >さらに,iostream.hは既に標準ライブラリの地位から滑り落ちているので, >iostream.hは使わないようにするのがよいです。 >#確か,.Net 2003ではiostream.h系列は削除されたはず。 > >標準C++ライブラリのiostream機能を利用する場合は, >#include <iostream> >のようになります。 #include <iostream> このように書いたのですけど・・・ コンパイルできませんでした・・・。 環境 Visual C++ 6.0 です。 エラー内容は・・・ eh.h is only for C++! >バイナリを扱うので, >if ((infp = fopen("4m", "rb")) == NULL) { >や >if ((outfp = fopen("test.bin", "wb")) == NULL) { >のように,バイナリモードで開く必要があります。 ご指摘ありがとうございました。 そこまで深く読んでませんでした・・・ すいません・・・。 >EOFの判断は書き込む前に行う必要があります。 はい! しっかり4MB最後まで読み込みました! ありがとうございます ^^ 以下がソースです。 ---------------------------------------------------- #include <windows.h> #include "BigEndian.h" #include <stdio.h> #include <stdlib.h> /* exit( ) で必要 */ #include <iostream.h> DWORD BigEndian(LPCTSTR lpFileName1) { FILE *infp; FILE *outfp; int c1; int c2; if ((infp = fopen("4m", "rb")) == NULL) { /* ファイルを開けなければ */ /* メッセージを表示して */ fprintf ( stderr, "Can't Open C Source File!\n" ); exit (2); /* 終了 */ } if ((outfp = fopen("test.bin", "wb")) == NULL) { /* ファイルを開けなければ */ /* メッセージを表示して */ fprintf ( stderr, "Can't Open C Source File!\n" ); exit (2); /* 終了 */ } while ((c1 = getc(infp)) != EOF && (c2 = getc(infp)) != EOF) { putc(c2, outfp); putc(c1, outfp); } if (c1 != EOF) { /* c2の読み込みでEOFになった場合 */ putc(c1, outfp); /* 1バイトだけ読み出せていた分を書き出す */ } fclose(infp); fclose(outfp); return SUCCESS; }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.