struct node
{
int data;
struct node *next;
} *start=NULL;
void create()
{
char ch;
do
{
struct node *new_node,*current;
new_node = (struct node *)malloc(sizeof(struct node));
printf("\nEnter the data : ");
scanf("%d",&new_node->data);
new_node->next = NULL;
if(start == NULL)
{
start = new_node;
current = new_node;
}
else
{
current->next = new_node;
current = new_node;
}
printf("nDo you want to creat another : ");
ch = getch();
} while(ch!='n');
}
这是包含getch()
当我尝试在在线编译器中运行此代码时,我收到此错误:
对getch
的未定义引用
collect2:错误:1d返回1退出状态
如何解决这个问题?...请帮忙
答案 0 :(得分:4)
标准 C库中没有getch
函数,它只存在于Windows中,因为它不是标准函数,它的真实名称是_getch
(注意领先的下划线)。根据错误消息判断您的在线编译器使用GCC,并且很可能在Linux环境中,因此没有getch
(或_getch
)函数。
如果您想要便携式,请使用fgetc
or getc
或getchar
(但请注意,这些功能会返回int
)。
答案 1 :(得分:1)
linux中有一个getch,但是在库中
#include <ncurses/curses.h>
有关详细信息,请参阅http://linux.die.net/man/3/getch。如果在线编译器在linux下工作,并获得ncurses库,这将是有效的!
答案 2 :(得分:1)
getchar()
可能会解决您的问题。
答案 3 :(得分:0)
我也有同样的问题。 但是_getche()而不是getch()已经解决了我的问题。