我正在开始开发一个简单的十六进制编辑器(当时只读取)。我想用OA
替换"\n"
,我正在尝试使用此代码:
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main() {
ifstream infile;
int crtchar = (int)infile.get();
infile.open("test.txt", ifstream::in);
while(infile.good())
{
if(crtchar != 0xA)
cout << hex << setfill('0') << setw(2) << crtchar << ":";
else
cout << endl;
}
cout << "\n=====================================\n";
infile.close();
return 0;
}
它编译没有错误,但是当我尝试执行它时,我什么也没得到:
C:\ Documents and Settings \ Nathan Campos \ Desktop&gt; hex
=====================================
C:\ Documents and Settings \ Nathan Campos \ Desktop&gt;
这是在我添加了OA
代替\n
的功能之后发生的,因为在它工作之前非常好。 出了什么问题?
答案 0 :(得分:7)
您意识到您只是在阅读一次字符,而甚至在打开文件之前阅读
答案 1 :(得分:3)
叹息。您尝试在打开文件之前阅读该文件。
答案 2 :(得分:0)
你不应该先open(...)
你的文件,然后尝试get()
吗?
另外,你不应该在while循环中做更多get()
答案 3 :(得分:0)
将int crtchar = (int)infile.get();
放入while(infile.good())
并尝试一下。