「聽說」在windows下,要設定斷點,只要在程式中加system("PAUSE");
不然的話,就必需要用IDE所提供的工具才可以去慢慢trace程式,
而我是比較習慣用vim寫程式,今天剛好找到一個可以提供讓程式先暫體的一個方法~
定義一個巨集,PAUSE
#include <stdio.h>
#define PAUSE printf("Press any key to continue..."); fgetc(stdin);
完整程式範例
#include <stdio.h>
#define PAUSE printf("Press any key to continue..."); fgetc(stdin);
int main(void)
{
PAUSE
printf("system(\"pause\") for Linux!\n");
return 0;
}程式雖然說按任何按鍵,但是,實際上只有按Enter才有效果。
我記得有一個函式是按任何按鍵就會有動作的~
下次有找到再補上吧~
噹噹~找到啦~如何在linux下實作一個getch()
在linux下沒有conio.h這一個檔案,所以,只好實作它啦~
請參考以下檔案。
debug.h
#ifndef _DEBUG_H
#define _DEBUG_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);
}
#endif // _DEBUG_H
參考資料:
#define KNOWLEDGE FREE
在 Linux 上實作 C++ 在 VC++ 的 getch()
[转]总述基金选择的步骤
16 年前
沒有留言:
張貼留言