Jun 15
这几天事儿太杂,心烦意乱,还不小心把移动硬盘给格了(冲动是魔鬼啊!),自己辛辛苦苦搞到的学习资料都没了,郁闷啊!
还好,事后整理了一下,损失不严重,大部分都可以找回来(总算有点心慰)。
这两天还要练车,事儿真多,有的时候有点“剪不断,理还乱”感觉,呵呵。
不管怎么说,得加把劲了,我还要成为高手,成为科学家呢!哈哈!
这几天事儿太杂,心烦意乱,还不小心把移动硬盘给格了(冲动是魔鬼啊!),自己辛辛苦苦搞到的学习资料都没了,郁闷啊!
还好,事后整理了一下,损失不严重,大部分都可以找回来(总算有点心慰)。
这两天还要练车,事儿真多,有的时候有点“剪不断,理还乱”感觉,呵呵。
不管怎么说,得加把劲了,我还要成为高手,成为科学家呢!哈哈!
今天在看c++时发现了这样一个问题:
在WINDOWS中,可以用这样写来实现程序的暂停
#include <iostream> int main() { cout << "Hello world!!" << endl; system("pause"); }
可是在LINUX中却不能做到,呵呵,这却实难到我了。
我上网查了一下,有牛人在/usr/include下加了头文件conio.h
#include <termios.h> #include <unistd.h> #include <assert.h> #include <string.h> int getch(void) { int c=0; struct termios org_opts, new_opts; int res=0; /*---- store old settings ----*/ res=tcgetattr(STDIN_FILENO, &org_opts); assert(res==0); /*---- set new terminal parms ----*/ memcpy(&new_opts, &org_opts, sizeof(new_opts)); new_opts.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ECHOPRT | ECHOKE | ICRNL); tcsetattr(STDIN_FILENO, TCSANOW, &new_opts); c=getchar(); /*---- restore old settings ----*/ res=tcsetattr(STDIN_FILENO, TCSANOW, &org_opts); assert(res==0); return c; }
但是我在应用时,没有成功!
呵呵,C的到是有很多方法 http://blog.chinaunix.net/u2/67401/showart.php?id=576410
我这儿还有一个代码实现了:
#include <stdio.h> #include <stdlib.h> #include <termios.h> #include <unistd.h> int getch(); void press_key(); int main() { printf("Hello world!\n"); press_key(); return 0; } void press_key() { printf("Press any key to continue...\n"); getch(); } int getch() { struct termios tm,tm_old; int fd = STDIN_FILENO,c; if (tcgetattr(fd, &tm) < 0) { return -1; } tm_old = tm; cfmakeraw(&tm); if (tcsetattr(fd,TCSANOW, &tm) < 0) { return -1; } c = fgetc(stdin); if (tcsetattr(fd,TCSANOW,&tm_old) < 0) { return -1; } return c; }
呵呵,多多发现,多多学习吧!!