成功!!!
|
李掌柜 发表于 2014-3-12 21:59 我不想退出啊。 |
本帖最后由 rosynirvana 于 2014-3-17 17:35 编辑 981013 发表于 2014-3-16 16:38 这个要说起来会比较麻烦…… 首先,操作系统不定义宏,只有编译环境定义宏 其次,_WIN32这个宏不是ISO C标准中的,编译环境不一定定义了这个宏;如果没定义就要用户手动定义才能起到条件编译的作用了 最后,_WIN32也不是非常通用,有些地方会用WIN32这个宏。而且这个宏的含义是“代码使用了windows API" 所以我觉得要起到条件编译的作用,还不如用WIN32 getch和getchar的区别就大了 getchar是标准库函数,而getch不是(在unix环境下经常需要装ncurses库才可以使用) getchar从缓冲区读取一个字符,而getch直接读取一个键盘输入 getchar是echoing的函数,键盘输入会显示出来,而getch不会 |
rosynirvana 发表于 2014-3-14 21:17 _WIN32这个宏不是由用户定义的,而是标志win32/64位系统用的 实在不知道别的区别系统的方法 另外,问下getch()和getchar()有什么区别? |
981013 发表于 2014-3-14 20:12 这个不对啊 首先,以单下划线开头的符号,用户不应该随便使用的 然后,getch的声明在conio.h(windows)或ncurses.h或curses.h中,而且还不一定有…… |
正确的调整平台问题的处理应是这样的(个人认为新手不需要了解这些):
|
楼主,太粗心了。这个头文件“#ifndef _WIN32 #include <unistd.h> #endif // _WIN32”可以删去。而且,少了两个分号 |
rosynirvana 发表于 2014-3-12 18:54 代码段这有个很明显的BUG; if(b==a) { printf("恭喜你,答对了!\n"); } 少了break;语句就算编译通过也无法正常退出~~ |
葛奕成 发表于 2014-3-12 18:02 这段可以编译 不知道你说错是指什么?你要的是什么效果? #include <windows.h> #include <unistd.h> 这两个头文件原则上不应该同时包含,不要抄别人代码里你看不懂的部分 但是在ahaC里似乎没有问题 另外再说一遍,贴代码的时候把system("shutdown... ") 注释掉 别人给你试验代码的时候不小心就会被强制关机,就有丢文件的危险 |
葛奕成 发表于 2014-3-12 18:02
|
改了还错!!! |
不过书上是这么写的:
|
额 shutdown -s -t 10 确实很危险 |
葛奕成 发表于 2014-3-11 21:51 那句关机的 这样代码直接交给别人是不合适的 |