尝试将二进制图像文件转换为ascii。

时间:2014-03-04 18:21:30

标签: c++ binary ascii ifstream pgm

我很困惑。我正在尝试创建一个存储.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。 它们有不同的长度。啊,我很困惑。讨厌听起来像新手,但我不想浪费时间!

由于

0 个答案:

没有答案