以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  荤菜求助:关于输入问题的超小程序  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=50511)


--  作者:荤菜
--  发布时间:7/25/2007 8:15:00 PM

--  荤菜求助:关于输入问题的超小程序
main()
{char n;
printf("input a char:\n");
  scanf("%c",&n);
  printf("%c",n);
  scanf("%c",&n);
  printf("%c",n);
  scanf("%c",&n);
  printf("%c",n);
getch();
}
搞不明白明明有三次输入为什么只能从键盘输入两次?
--  作者:卷积内核
--  发布时间:7/27/2007 8:58:00 AM

--  
因为你输入一个字符比如说“a”,那么你要回车响应,scanf("%c",&n);认为回车也是一个字符,所以只有两次输入,比如你打“ab”那么你会看到你只有一次输入机会。
--  作者:一分之千
--  发布时间:7/27/2007 1:26:00 PM

--  
以下是引用卷积内核在2007-7-27 8:58:00的发言:
因为你输入一个字符比如说“a”,那么你要回车响应,scanf("%c",&n);认为回车也是一个字符,所以只有两次输入,比如你打“ab”那么你会看到你只有一次输入机会。

开始我也是这么认为的,但是结果好像不太对,第二个scanf取到的值是 10,而回车的值是13 。ASC码表里查到的回车也是13.


--  作者:一分之千
--  发布时间:7/27/2007 1:28:00 PM

--  
asc值为10的是一个叫 line feed的东西,这个是什么?
--  作者:一分之千
--  发布时间:7/27/2007 1:35:00 PM

--  
查了一下 line feed 是换行的意思。
--  作者:荤菜
--  发布时间:7/29/2007 9:38:00 AM

--  
谢谢
--  作者:荤菜
--  发布时间:7/29/2007 9:44:00 AM

--  
那么如果我编一个程序:输入"y"显示"yes",再输入一个"y"又显示一个"yes",直到输入"n"显示"no"并退出,由于这个程序的循环涉及到以上问题,这个程序该如何编写?
--  作者:卷积内核
--  发布时间:7/30/2007 11:36:00 AM

--  
加上一条判断语句就好了啊~~
--  作者:taoyx
--  发布时间:8/9/2007 11:04:00 AM

--  
谢谢
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
67.383ms