1

我正在尝试读取文件(实际上是 ROM)。问题是我的程序在实际到达文件末尾之前停止了。这是我写的:

int main(){
cout << "Entter the file to read in HEX: " ;
string fileName;
cin >> fileName;

ifstream streamLecture(fileName);
unsigned char charLu;
while(!streamLecture.eof()){
    streamLecture >> charLu;        
    cout<< hex << setw(2) << setfill('0') << short(charLu) << ' ';
}
streamLecture.close();

cout << endl;
}

这个程序计算了几行 HEX 值,但我知道还有很多,因为我在 HEX 编辑器程序中读取了文件。

编辑:好的,所以我假设我的文件中间有一个 EOF,我该如何跳过它或之后继续阅读?再次感谢

4

2 回答 2

3

以二进制模式打开文件,然后使用get()

    ifstream streamLecture(fileName, std::ios::binary);
    while (streamLecture.get(charLu)) {
        cout<< hex << setw(2) << setfill('0') << short(charLu) << ' ';
    }
于 2013-10-17T04:17:57.980 回答
0

利用

while(streamLecture >> charLu){
    cout<< hex << setw(2) << setfill('0') << short(charLu) << ' ';
}
于 2013-10-17T03:24:08.200 回答