繁体   English   中英

C ++ / OpenGL,在屏幕上绘制随机字符

[英]C++/OpenGL, drawing random char to screen

(使用C ++,OpenGL / GLUT,Xcode,OSX)

我正在寻找将随机字符绘制到屏幕上的帮助。 我将任务分为两部分...

(1)我可以使用以下方法随机选择UPPER_CASE字母:

    int launchCode1_random = rand() % 26;
    char c1 = (char)(launchCode1_random+65);
    cout << c1 << "\n";

(2)我可以使用以下方法在OpenGL中绘制字符串:

    string launchCode1 = "thing";
    void * fontlaunchCode1 = GLUT_BITMAP_9_BY_15;
    for (string::iterator i = launchCode1.begin(); i != launchCode1.end(); ++i)
    {
        char c = *i;
        glutBitmapCharacter(fontlaunchCode1, c);
    }

...但是,我想在上面的第2步中写的是:

    string launchCode1 = c1;

这样做时,我收到以下错误消息:“从'char'到'string'没有可行的转换。从表面上看,这对我来说很有意义。但是我不完全了解为什么或如何。还有其他解决方法我看不到,很想听听您对这个问题的想法。

编辑.....

这是在Pubby帮助下的最终工作代码:

    int launchCode1_random = rand() % 26;
    char c1 = (char)(launchCode1_random+65);
    cout << c1 << "\n";

    string launchCode1 (1, c1);
    void * fontlaunchCode1 = GLUT_BITMAP_9_BY_15;
    for (string::iterator i = launchCode1.begin(); i != launchCode1.end(); ++i)
    {
        char c = *i;
        glutBitmapCharacter(fontlaunchCode1, c);
    }

如果要从字符构造std::string ,则可以执行以下操作:

string launchCode1(1, c1);

使用此构造函数:

string( size_type count, 
        CharT ch, 
        const Allocator& alloc = Allocator() );

http://en.cppreference.com/w/cpp/string/basic_string/basic_string

我还不太了解你在做什么。 如果只需要一个字符,为什么还要打扰std::string 只要这样做:

int launchCode1_random = rand() % 26;
char c = (char)(launchCode1_random+65);
glutBitmapCharacter(fontlaunchCode1, c);

这与您的问题无关,但仍然很高兴知道:您需要以下代码行:

srand ( time(NULL) );

在这一切之前

int launchCode1_random = rand() % 26;
char c1 = (char)(launchCode1_random+65);
cout << c1 << "\n";

否则,您将一遍又一遍地得到相同的随机字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM