鱼C论坛

 找回密码
 立即注册
查看: 3111|回复: 8

关于字符替换的问题 KR THE C 1-10

[复制链接]
发表于 2013-1-20 16:31:38 | 显示全部楼层 |阅读模式
5鱼币
为何当我输入回车的时候,不是跳到下一行呢,而是变成跳到开头?

很疑惑  ,希望各位能指教一下
#include "stdio.h"

main()
{
        int a;

        while ( (a=getch()) != EOF )
        {
                if( a == '\t' )
                {
                        printf("\\t");
                }
                else if( a == '\\' )
                {
                        printf("\\\");
                }
                else if( a == '\b' )
                {
                        printf("\\b");
                }
                else
                {
                        printf("%c", a);
                }
        }
}

最佳答案

查看完整内容

我们按下回车键的时候,实际上输入了两个ascii字符分别是:13(回车)和10(换行)。 其中:回车将光标移到本行开头;换行将光标移到下行的同列。我们通常说的“回车”实际上是回车+换行 OK,最后当你按下“回车”键的时候getch()只接收了字符13(回车)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-20 16:31:39 | 显示全部楼层
我们按下回车键的时候,实际上输入了两个ascii字符分别是:13(回车)和10(换行)。
其中:回车将光标移到本行开头;换行将光标移到下行的同列。我们通常说的“回车”实际上是回车+换行
OK,最后当你按下“回车”键的时候getch()只接收了字符13(回车)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-1-20 16:57:14 | 显示全部楼层
哪有问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-1-20 17:24:24 | 显示全部楼层

但是我如果使用‘\n'的话,\n不是换行么又没有回车,那么怎么回到开头了呢
不是很理解     
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-1-20 18:48:17 | 显示全部楼层
版主说的其实很好啦,我发两张图,补充一下。版主说了,回车键实际等于两个字符,但是getch()只能接受到第一个字符,就是回车,也就是/r。所以你直接printf的话,只能打出/r的效果,也就是回车,回到行首的效果。我第一张图给你加了一个红框框,就能正常换行了。第二张图是个调试图,按下回车后确实,a=13=/r,验证一下的,所以你直接接收/n,接收不到啦。
2013.1.20.18.33.jpg
2013.1.20.18.39.jpg

评分

参与人数 1鱼币 +3 收起 理由
1079629687 + 3 非常感谢

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-1-21 10:26:29 | 显示全部楼层
lukelqz 发表于 2013-1-20 18:48
版主说的其实很好啦,我发两张图,补充一下。版主说了,回车键实际等于两个字符,但是getch()只能接受到第一 ...

如果单单的
printf("\n");
他可以实现回车换行,而不是单单一个回车。小弟求解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-1-21 18:47:32 | 显示全部楼层
在不同操作系统下对于“回车键”的解释是不同的:windows下“回车键”为回车+换行;linux下为换行;Mac下为回车
为了让C语言能够在不同操作系统下都实现“回车键”的功能,当你打印字符'\n'的时候,不同操作系统会自动解释为“回车键”的功能(即在windows打印\n的时候实际上打印了2个字符)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
Gw_love_VC. + 3 + 3 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-1-22 08:30:22 | 显示全部楼层
仰望天上的光 发表于 2013-1-21 18:47
在不同操作系统下对于“回车键”的解释是不同的:windows下“回车键”为回车+换行;linux下为换行;Mac下为回 ...

谢谢版主了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-4 17:12:57 | 显示全部楼层
Gw_love_VC. 发表于 2013-1-22 08:30
谢谢版主了

寒假度假中  不过你的问题  版主应该帮你解决了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-15 23:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表