Подставляя 0A для \ n - PullRequest
       18

Подставляя 0A для \ n

0 голосов
/ 06 января 2010

Я сейчас начинаю разработку простого шестнадцатеричного редактора (который читает только в то время). Я хочу заменить 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 \ Натан Кампос \ Рабочий стол> hex

=====================================

C: \ Documents and Settings \ Натан Кампос \ Рабочий стол>

Это происходит сразу после того, как я добавил функцию для замены OA на \n, потому что раньше она работала очень хорошо Что не так?

Ответы [ 4 ]

7 голосов
/ 06 января 2010

Вы понимаете, что читаете только символ один раз и , прежде чем даже открыть файл , при этом?

3 голосов
/ 06 января 2010

Вздох. Вы пытаетесь прочитать файл, прежде чем открыть его.

0 голосов
/ 06 января 2010

Поместите int crtchar = (int)infile.get(); внутрь while(infile.good()) и попробуйте.

0 голосов
/ 06 января 2010

Разве вы не должны сначала open(...) ваш файл, а затем попытаться get() из него? Кроме того, вы не должны делать больше get() внутри цикла while

...