Я нахожусь в начале разработки простого шестнадцатеричного редактора (который только читается в то время). Я хочу, чтобы заменить OA
для "\n"
, я пытаюсь с этим кодом:Подстановка 0A Для 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: \ Документы и настройки \ Nathan Campos \ Desktop> hex
==================================================================== =
C: \ Documents and Settings \ Nathan Campos \ Рабочий стол>
Это происходит сразу после того, как я добавил эту функцию, чтобы заменить OA
на \n
, потому что раньше она работала очень красиво. Что не так?
Вы уверены, что используете одну и ту же программу, за исключением переключателя '0xA' для' '\ n''? Является ли EOL-перевод кусающим вас? Если у вас действительно есть другое поведение для этих двух, попробуйте ли вы напечатать целочисленное значение '' \ n''? Почему вы даже хотите избежать более читаемого (и более портативного) '' \ n'' в пользу '0xA'? –