用0A代替\ n

时间:2010-01-06 12:27:07

标签: c++ file-io hex

我正在开始开发一个简单的十六进制编辑器(当时只读取)。我想用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的功能之后发生的,因为在它工作之前非常好。 出了什么问题?

4 个答案:

答案 0 :(得分:7)

您意识到您只是在阅读一次字符,而甚至在打开文件之前阅读

答案 1 :(得分:3)

叹息。您尝试在打开文件之前阅读该文件。

答案 2 :(得分:0)

你不应该先open(...)你的文件,然后尝试get()吗? 另外,你不应该在while循环中做更多get()

答案 3 :(得分:0)

int crtchar = (int)infile.get();放入while(infile.good())并尝试一下。