0

私はとても立ち往生しています。.PGM ファイルの値を格納する ASCII テキスト ファイルを作成しようとしています。

ファイルを正常に読み取ることができます。ヘッダーは ascii で、完全に読み取ります。

しかし、問題は、16 バイトのヘッダーの後のすべてを ascii として読み取り、テキスト ファイルとして出力する必要があることです。

0 235 23 02 255 

など。これは、次のようなバイナリ表現ではありません。

   ÐHHb{{ 

したがって、ファイルの基本的な読み取りの基本的なコードは次のとおりです。

void readTxt(char * fileName){
std::ifstream inFile(fileName);

unsigned int * cData = 0;

int rows = 1943;
int cols = 1365;

try{
    if(inFile.is_open()){
        cData = new unsigned int[rows*cols];    
        int i = 0;

        while(inFile.good()){
            if(i > rows*cols -1) break;
            inFile >> cData[i]; i++;
        }
    }
    else throw "Could not open file\n";

    std::cout <<"done\n";

    inFile.close();
} 
catch(const char * e){ std::cout << "Err"; }

delete[] cData;

}

しかし、私は完全に困惑しています。データをどうするか? よくわかりませんが、スペースを含む文字として保存されていると思いますが、

では、char[3] = "255" を int として識別するにはどうすればよいでしょうか。または、char[0] = "0" だけが int です。それらの長さはさまざまです。ああ、私はとても混乱しています。初心者のように聞こえるのは嫌ですが、これ以上時間を無駄にするのは嫌です!

ありがとう

4

0 に答える 0