关于'\r'的小问题

软件和网站开发以及相关技术探讨
回复
melancholy444
帖子: 3
注册时间: 2009-07-11 17:44

关于'\r'的小问题

#1

帖子 melancholy444 » 2009-07-14 11:25

代码如下

#include <stido.h>
#include "conio_my.h" //由于要用到getch()函数,但此函数并非ANSI C函数,所以从网上down了一个 ,绝对没有 问题的

int main(int argc,char** argv[])
{
char ch;
while((ch = getch()) != ' \r ')
{
//代码略
}
return 0;
}

编译没有错误,意思就是说,当输入为回车时,退出循环。再次申明,getch()函数正常。执行时,敲入回车,没有反应,在VC++6.0环境下正常,但用gcc就不行了。

嘿嘿,虚心请教各位高手啦
dbzhang800
帖子: 3182
注册时间: 2006-03-10 15:10
来自: xi'an China
联系:

Re: 关于'\r'的小问题

#2

帖子 dbzhang800 » 2009-07-14 12:10

你认为你这个 conio_my.h 在linux能工作的根据 是什么呢?

VC6下能工作不能说明任何问题。
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

Re: 关于'\r'的小问题

#3

帖子 bones7456 » 2009-07-14 12:19

\n 试试?
关注我的blog: ε==3
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 关于'\r'的小问题

#4

帖子 eexpress » 2009-07-14 12:34

man ascii
● 鸣学
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 关于'\r'的小问题

#5

帖子 BigSnake.NET » 2009-07-14 12:44

melancholy444 写了:代码如下

#include <stido.h>
#include "conio_my.h" //由于要用到getch()函数,但此函数并非ANSI C函数,所以从网上down了一个 ,绝对没有 问题的

int main(int argc,char** argv[])
{
char ch;
while((ch = getch()) != ' \r ')
{
//代码略
}
return 0;
}

编译没有错误,意思就是说,当输入为回车时,退出循环。再次申明,getch()函数正常。执行时,敲入回车,没有反应,在VC++6.0环境下正常,但用gcc就不行了。

嘿嘿,虚心请教各位高手啦
linux 下按回车不产生 \r
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
melancholy444
帖子: 3
注册时间: 2009-07-11 17:44

Re: 关于'\r'的小问题

#6

帖子 melancholy444 » 2009-07-14 18:32

原来如此,谢谢
melancholy444
帖子: 3
注册时间: 2009-07-11 17:44

Re: 关于'\r'的小问题

#7

帖子 melancholy444 » 2009-07-14 18:36

dbzhang800 写了:你认为你这个 conio_my.h 在linux能工作的根据 是什么呢?

VC6下能工作不能说明任何问题。
嘿嘿,因为用别的代码验证过的,用getch()把输入的字符放到字符数组里,输出,没有问题

char buffer[32];
int i;
char ch;
for(i=0;i<31;i++)
{
ch=getch();
buffer=ch;
}
buffer[31]='\0';

然后输出buffer,没有任何问题
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: 关于'\r'的小问题

#8

帖子 自由建客 » 2009-07-15 15:15

melancholy444 写了: #include "conio_my.h" //由于要用到getch()函数,但此函数并非ANSI C函数,所以从网上down了一个 ,绝对没有 问题的
你就不能用 getchar() ?
头像
Final_x
帖子: 383
注册时间: 2008-05-03 23:05
联系:

Re: 关于'\r'的小问题

#9

帖子 Final_x » 2009-07-23 2:36

代码: 全选

int main(int argc,char** argv[])
-----------------看看main的第二个参数..
头像
Final_x
帖子: 383
注册时间: 2008-05-03 23:05
联系:

Re: 关于'\r'的小问题

#10

帖子 Final_x » 2009-07-23 2:38

getch()这个函数在vs2005以上就出错了吧
不是c99的标准

想要达到同样的效果额.....莫非要修改终端属性?

-----------------------坐等HuntXu来批
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 关于'\r'的小问题

#11

帖子 BigSnake.NET » 2009-07-23 20:12

Final_x 写了:getch()这个函数在vs2005以上就出错了吧
不是c99的标准

想要达到同样的效果额.....莫非要修改终端属性?

-----------------------坐等HuntXu来批
curses 里面有个 getch
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 关于'\r'的小问题

#12

帖子 tusooa » 2009-07-25 6:17

Final_x 写了:

代码: 全选

int main(int argc,char** argv[])
-----------------看看main的第二个参数..
就是,应该是字串数组,而不是字串数组数组

代码: 全选

] ls -ld //
回复