当前位置: 技术问答>linux和unix
这样编写程序有什么错
来源: 互联网 发布时间:2015-03-27
本文导语: 我装的是mandrak linux9.0 程序如下: #include #define StartX 1 #define StartY 1 main() { int x=StartX; int y=StartY; int ch; initscr(); cbreak(); nonl(); noecho(); intrflush(stdscr,false); keypad(stdscr,true); ...
我装的是mandrak linux9.0
程序如下:
#include
#define StartX 1
#define StartY 1
main()
{
int x=StartX;
int y=StartY;
int ch;
initscr();
cbreak();
nonl();
noecho();
intrflush(stdscr,false);
keypad(stdscr,true);
refresh();
box(stdscr,'|','-'); /* 画方框*/
attron(A_REVERSE); /* 开启反白模式*/
mvaddstr(0,20,"Curses Program"); /* 在 (20,0) 处输出反白字元 */
attroff(A_REVERSE); /* 关闭反白模式 */
move(x,y);
do { /* 以无限回圈不断等待输入 */
ch=getch(); /* 等待自键盘输入字元 */
switch(ch) { /* 判断输入字元为何 */
case KEY_UP: --y; /* 判断是否"↑"键被按下*/
break;
case KEY_DOWN: ++y; /* 判断是否"↓"键被按下*/
break;
case KEY_RIGHT: ++x; /* 判断是否"→"键被按下 */
break;
case KEY_LEFT: --x; /* 判断是否"←"键被按下 */
break;
case 'r': /* 判断是否 ENTER 键被按下 */
++y;
x=0;
break;
case 't': /* 判断是否 TAB 键被按下*/
x+=7;
break;
case 127: /* 判断是否 BACKSPACE 键被按下 */
mvaddch(y,--x,' ');/* delete 一个字元 */
break;
case 27: endwin(); /* 判断是否[ESC]键被按下 */
exit(1); /* 结束 curses 模式 */
/* 结束此程式*/
default:
addch(ch); /* 如果不是特殊字元, 将此字元印出 */
x++;
break;
}
move(y,x); /* 移动游标至现在位置*/
} while (1);
}
用gcc -o cur cur.c -lcurses命令编译报错如下:
true,false,stdscr,A_REVERSE,KEY_UP...都没有定义
这是怎么回事呀
程序如下:
#include
#define StartX 1
#define StartY 1
main()
{
int x=StartX;
int y=StartY;
int ch;
initscr();
cbreak();
nonl();
noecho();
intrflush(stdscr,false);
keypad(stdscr,true);
refresh();
box(stdscr,'|','-'); /* 画方框*/
attron(A_REVERSE); /* 开启反白模式*/
mvaddstr(0,20,"Curses Program"); /* 在 (20,0) 处输出反白字元 */
attroff(A_REVERSE); /* 关闭反白模式 */
move(x,y);
do { /* 以无限回圈不断等待输入 */
ch=getch(); /* 等待自键盘输入字元 */
switch(ch) { /* 判断输入字元为何 */
case KEY_UP: --y; /* 判断是否"↑"键被按下*/
break;
case KEY_DOWN: ++y; /* 判断是否"↓"键被按下*/
break;
case KEY_RIGHT: ++x; /* 判断是否"→"键被按下 */
break;
case KEY_LEFT: --x; /* 判断是否"←"键被按下 */
break;
case 'r': /* 判断是否 ENTER 键被按下 */
++y;
x=0;
break;
case 't': /* 判断是否 TAB 键被按下*/
x+=7;
break;
case 127: /* 判断是否 BACKSPACE 键被按下 */
mvaddch(y,--x,' ');/* delete 一个字元 */
break;
case 27: endwin(); /* 判断是否[ESC]键被按下 */
exit(1); /* 结束 curses 模式 */
/* 结束此程式*/
default:
addch(ch); /* 如果不是特殊字元, 将此字元印出 */
x++;
break;
}
move(y,x); /* 移动游标至现在位置*/
} while (1);
}
用gcc -o cur cur.c -lcurses命令编译报错如下:
true,false,stdscr,A_REVERSE,KEY_UP...都没有定义
这是怎么回事呀
|
1.用g++ -o cur cur.c -lcurses
2.要#include你用到的头文件,如#include
2.要#include你用到的头文件,如#include
|
mv cur.c cur.cpp
|
你要#include你用到的头文件,如#include