如何在用户输入的时候,可以实现转义字符

huayuan_001 2008-04-01 09:47:40
现在用户输入的时候,比如输入 \r\n\t 读入程序中就是此字符串。
而现在我想要:比如用户输入 \r\n\t 后 程序读入后就是 3个转义字符,或者转化为相应的转移字符。
用户输入 \t 后, 程序读入'\t'这个转义字符。
怎么实现这样的转化呢?
实在是想不出来好的方法。 请大家多多指教
...全文
199 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryfdizuo 2008-04-01
  • 打赏
  • 举报
回复
//将结果输出看一下:
for(int j=0; j<count; j++)
printf("%d ", dest[j]);
//测试:
\r\t\n\w123sdadsdw
看一下输出的acs码,
ryfdizuo 2008-04-01
  • 打赏
  • 举报
回复
	int cBuf[2], i=0, count=0;  //cBuf缓存输入的字符;
char dest[10]; //存放结果...
while ((cBuf[i] = getchar()) != EOF && count<9)
{
if( cBuf[i]!='\\' )
{
dest[count++]=cBuf[i];
i=0;
continue;
}
cBuf[++i]=getchar();
switch(cBuf[1])
{
case 'n':
dest[count++]='\n';
break;
case 't':
dest[count++]='\t';
break;
case 'r':
dest[count++]='\r';
break;
default: //第二个输入不是n, t, r则将二者全部存入结果中;
dest[count++]=cBuf[0];
dest[count++]=cBuf[1];
break;
}
i=0; //重置缓存下标;
}
zeloas 2008-04-01
  • 打赏
  • 举报
回复
这个只能自己转化
遇到'\'时,再多读入一个字符判断是不是t或者n或者。。。
如果是则输出转义字符不是这把多读入的那个字符放回到输入流中ungetch
huayuan_001 2008-04-01
  • 打赏
  • 举报
回复
麻烦多指教点。 不知道怎么判断。
csdn5211 2008-04-01
  • 打赏
  • 举报
回复
自己判断一下就行了,getchar的时候。

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧