括号C ++中的变量

时间:2016-05-29 19:50:12

标签: c++ random parentheses

我目前正在编写一个C ++程序,该程序随机为使用文件输入/输出的人选择角色。

我差不多完成了,我经常构建以确保我的代码工作而不是伪代码。我的代码片段收到错误 -

randomPrefs.open ("Preferences/"members[random]"-Preferences");

我正在尝试访问Preferences / foo-Preferences中的文本文件,并且该变量由其上方的某些代码随机变为。我已经完成了随机片段并且它工作得很好,所以我不需要在这里包含它。我得到的错误是:

Avalon - Omnipotent.cpp:61:21: error: unable to find string literal operator 'operator""members' with 'const char [13]', 'unsigned int' arguments

所以,我一直在寻找这个错误,但一无所获。我想在它周围做一个小括号,它导致了一个不同的错误 -     Avalon - Omnipotent.cpp:61:51:错误:表达式不能用作函数

任何帮助都将不胜感激。

这里有一点注意,如果没有括号,我会收到关于我的变量没有被使用的警告 -

Avalon - Omnipotent.cpp:39:21: warning: unused variable 'members' [-Wunused-variable]

但是,第二个错误不会对未使用的变量发出警告。

嘿,我的变量是什么样的:

 unsigned const char members[22] = 

我分配了值“随机”,它选择0到21之间的随机数,并将生成的数字赋值为随机值,并将变量声明为成员[random]。它工作得很好,我只需要帮助解决这些错误。

帮助!

3 个答案:

答案 0 :(得分:3)

要连接字符串,请执行以下操作:

std::string s = std::string("Preferences/") + members[random] + "-Preferences";
randomPrefs.open(s);

如果您不想要中间命名变量,那么:

randomPrefs.open(std::string("Preferences/") + members[random] + "-Preferences");

如果成员不包含'A''B''C''4'等字符,而是包含数字4,{{1 }}或28,然后您可以使用153将数字转换为相应的字符串。

std::to_string

关于未使用变量的警告没有用,这是由于编译器在代码中看到了先前的错误。如果你解决了上述问题,那也应该消失。

答案 1 :(得分:0)

如果您正在尝试进行字符串连接,最好使用itoa() -> std::string(const char*)to_string()作为字符串数字,并使用operator+()或{{1}进行连接。

请注意std::string.append()是C ++ 11:

http://coliru.stacked-crooked.com/a/eb3677d7abffca00

to_string()

答案 2 :(得分:0)

@YoBro:这里! - Bill Lynch 7分钟前

在我的代码完成后对我的代码进行建模!

 std::string s = std::string("Preferences/") + std::to_string(members[random]) + "-Preferences";
  randomPrefs.open(s);

我现在使用类似的东西。