<答>
问题1:'\n'和'\t'是两个转义字符(各占1B),在文本文件中分别表示换行(Linux下以'\n'为行尾;Windows下以"\r\n"为行尾)和水平制表。及在控制台程序输入状态下,敲回车,程序会接收到'\n';键入Tab,程序会收到'\t'。但是cin输入流。若楼主想将用户显示输入的"\n"和"\t"换成转义字符,可以代码实现。
问题2:同上,楼主意思是替换,代码实现即可。
附上以下代码,加以说明:
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char c;
string str;
for (;;){
if (cin.rdbuf()->in_avail() < 1){ /*判断cin输入流中是否有待读取的字符*/
cout << "输入:";
}
c = getchar();/*从cin输入流中读取一个字符*/
//cin.clear();cin.sync(); /*启用该行,将丢弃cin输入流中剩余所有数据*/
switch (c)
{
case '\t':str = "\\t"; break;
case '\n':str = "\\n"; break;
case '\r':str = "\\r"; break;
case '\0':str = "\\0"; break;
default:str = c;
}
cout << str << endl;
/*若一次输入的字符没有读取完(没有被清理),将继续循环,直到cin输入流中无数据,程序阻塞在getchar()函数等待新的输入*/
}
return 0;
}
/*
依次键入:
asdfgh回车
输出:
a
s
d
\n
*/