私はとても立ち往生しています。.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 です。それらの長さはさまざまです。ああ、私はとても混乱しています。初心者のように聞こえるのは嫌ですが、これ以上時間を無駄にするのは嫌です!
ありがとう