【发布时间】:2011-01-02 00:58:48
【问题描述】:
我当时正在开发一个简单的十六进制编辑器(当时只能读取)。我想用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>hex
======================================
C:\Documents and Settings\Nathan Campos\Desktop>
这发生在我添加了用OA 替换\n 的功能之后,因为之前它工作得很好。 怎么了?
【问题讨论】:
-
除了将
0xA切换为'\n'之外,您确定运行的是完全相同的程序吗? EOL 翻译咬你吗?如果您确实对两者有不同的行为,您是否尝试过打印'\n'的整数值?为什么你甚至要避免使用更易读(也更便携)的'\n'来支持0xA?