1

我似乎无法在下生成随机CUbuntu 12.04

我写了下面的代码:

#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
int main (int argc,char* argv[])
{
     int number;
     clear();

     number = rand() % 2; // want to get only 0 or 1

     printf("%d",number);
     getch();
     return 0;
}

我将文件命名为“test_gcc.c”。

之后我编译它:

$ sudo gcc -o test_gcc test_gcc.c

我收到以下消息:

/tmp/ccT0s12v.o: In function `main':
test_gcc.c:(.text+0xa): undefined reference to `stdscr'
test_gcc.c:(.text+0x12): undefined reference to `wclear'
test_gcc.c:(.text+0x44): undefined reference to `stdscr'
test_gcc.c:(.text+0x4c): undefined reference to `wgetch'
collect2: ld returned 1 exit status

有人可以告诉我我做错了什么吗?

以及如何CUbuntu 12.04使用中生成随机数gcc

提前致谢!

4

4 回答 4

6

这与随机数无关。问题是您在没有curses库的情况下进行链接。

您需要添加-lncursesgcc命令行:

 $ gcc -o test_file test_file.c -lncurses
于 2012-09-15T15:50:24.007 回答
1

您没有播种随机数生成器。<-- 不是错误的原因

srand(time(0));调用前使用rand()

于 2012-09-15T15:50:18.497 回答
1

每次运行可执行文件时使用srand ( time(NULL) );before获取不同的随机数。number = rand() % 2;

对于错误:

  • 删除clear()并使用getchar()而不是,getch()然后它应该可以正常工作。

  • getch()在支持非缓冲输入的编译器中使用,但在 gcc 的情况下,它是缓冲输入,所以使用getchar().

代码:

#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
int main (int argc,char* argv[])
{
    int number;
    srand(time(NULL));
    number = rand() % 2; // want to get only 0 or 1
    printf("%d",number);
    getchar();
    return 0;
}
于 2012-09-15T15:55:17.043 回答
0

尝试 :

 gcc -o test_gcc test_gcc.c -lncurses
于 2012-09-15T15:52:16.117 回答