搜索
楼主: 葛奕成
打印 上一主题 下一主题

代码错了?

[复制链接]
16#
发表于 2014-3-14 21:17:37 | 只看该作者
981013 发表于 2014-3-14 20:12
正确的调整平台问题的处理应是这样的(个人认为新手不需要了解这些):

这个不对啊
首先,以单下划线开头的符号,用户不应该随便使用的
然后,getch的声明在conio.h(windows)或ncurses.h或curses.h中,而且还不一定有……
17#
发表于 2014-3-16 16:38:19 | 只看该作者
rosynirvana 发表于 2014-3-14 21:17
这个不对啊
首先,以单下划线开头的符号,用户不应该随便使用的
然后,getch的声明在conio.h(windows) ...

_WIN32这个宏不是由用户定义的,而是标志win32/64位系统用的
实在不知道别的区别系统的方法
另外,问下getch()和getchar()有什么区别?
18#
发表于 2014-3-16 22:34:26 | 只看该作者
本帖最后由 rosynirvana 于 2014-3-17 17:35 编辑
981013 发表于 2014-3-16 16:38
_WIN32这个宏不是由用户定义的,而是标志win32/64位系统用的
实在不知道别的区别系统的方法
另外,问下 ...

这个要说起来会比较麻烦……
首先,操作系统不定义宏,只有编译环境定义宏
其次,_WIN32这个宏不是ISO C标准中的,编译环境不一定定义了这个宏;如果没定义就要用户手动定义才能起到条件编译的作用了
最后,_WIN32也不是非常通用,有些地方会用WIN32这个宏。而且这个宏的含义是“代码使用了windows API"

所以我觉得要起到条件编译的作用,还不如用WIN32

getch和getchar的区别就大了
getchar是标准库函数,而getch不是(在unix环境下经常需要装ncurses库才可以使用)
getchar从缓冲区读取一个字符,而getch直接读取一个键盘输入
getchar是echoing的函数,键盘输入会显示出来,而getch不会
19#
 楼主| 发表于 2014-3-17 16:49:40 | 只看该作者
李掌柜 发表于 2014-3-12 21:59
代码段这有个很明显的BUG;           
              if(b==a)
              {

我不想退出啊。

点评

额~~!这样子呀  发表于 2014-3-17 20:26
20#
 楼主| 发表于 2014-3-17 16:54:28 | 只看该作者
成功!!!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main()
  5. {
  6.     int a,b,sum;
  7.     sum=10;
  8.     srand((unsigned)time(NULL));
  9.     a=rand()%100;
  10.     while(1)
  11.         {
  12.             sum--;
  13.             scanf("%d",&b);
  14.                    if(b>a)
  15.             printf("大了,还剩下%d次机会,请继续\n",sum);
  16.                   if(b<a)
  17.             printf("小了,还剩下%d次机会,请继续\n",sum);
  18.                    if(b==a)
  19.               {
  20.                            printf("恭喜你,答对了!\n");
  21.                    }
  22.                    if(sum==0)
  23.                    {
  24.                             printf("已经没有机会了,系统将在20秒内关机!\n");
  25.                             system("shutdown -s -t 10");
  26.                             break;
  27.                 }
  28.         }
  29. system("pause");        
  30. return 0;
  31. }
复制代码
21#
发表于 2014-3-17 21:44:28 | 只看该作者

那玩这个游戏的时候猜对了那不是要手动关掉
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表