我刚刚开始学习C ++,并且能够熟练使用Python编写代码。我想用C ++再次创建一个旧的python程序,这是一个混乱的单词。在Python程序中,您可以选择模式(简单,中等或硬)。除此之外,每个模式都有自己的字典,程序随机选择。与每个单词配对是一个提示,因此使用字典。
有人可以解释我将如何在C ++中执行此操作吗?
谢谢
PS。到目前为止我到这儿了,但我得到了错误
//Word Jumble - Ben
#include <iostream>
#include <cstdlib>
#include <map>
#include <string>
using namespace std;
int computer(){
cout << "\nYOU ARE PLAYING AGAINST THE COMPUTER";
cout << "COMPUTER IS JUBMBLING WORD...";
system("PAUSE");
system("CLS");
map easy
easy = {{"Ship","A large boat"}, {"Ladder","A Piece of Apparatus that helps you climb things"},{"Water","What the human body is mainly composed of"}};
int main(){
cout << "\n\n WELCOME TO WORD JUMBELE";
cout << "\n BY BEN";
computer()}
错误:
C:\Users\Ben\SkyDrive\Documents\C++\Word Jumble\Word Jumble.cpp:12:9: error: missing template arguments before 'easy'
C:\Users\Ben\SkyDrive\Documents\C++\Word Jumble\Word Jumble.cpp:12:9: error: expected ';' before 'easy'
C:\Users\Ben\SkyDrive\Documents\C++\Word Jumble\Word Jumble.cpp:17:15: error: expected '}' at end of input
答案 0 :(得分:0)
正如第一个错误所示,map easy
缺少模板参数。在C ++中,您需要指定地图所包含的类型。我想你想要的是map<string, string> easy
。
我还发现您在map easy
和computer()
之后错过了分号。 C ++中的所有变量定义和函数调用必须以分号结尾。
除此之外,你还错过computer()
上的右大括号。
顺便说一下,computer()
会返回int
,因为return
中没有computer()
语句也会导致错误。您可以添加一个,但由于您没有使用任何返回值,您可能只想将int
替换为void
,这将不再需要返回语句。
我实际上必须复制你的代码并自己编译以找到所有错误。如果您没有尝试将代码格式化为Python,那就没有必要了。在C ++中,格式化此代码的更好方法如下:
int computer(){
cout << "\nYOU ARE PLAYING AGAINST THE COMPUTER";
cout << "COMPUTER IS JUBMBLING WORD...";
system("PAUSE");
system("CLS");
map easy
easy = {
{"Ship","A large boat"},
{"Ladder","A Piece of Apparatus that helps you climb things"},
{"Water","What the human body is mainly composed of"}
};
int main(){
cout << "\n\n WELCOME TO WORD JUMBELE";
cout << "\n BY BEN";
computer()
}
现在很明显缺少支具的位置。
答案 1 :(得分:0)
首先,map是所谓的模板类。这意味着您必须传递map<key_type, value_type>
类型的具体类型,以指定编译器应生成代码的类型。请注意,C ++是严格类型化的语言。
为了填充地图,您应该使用:
concreteMap[key] = value
答案 2 :(得分:-1)
这个
map easy
首先,您需要指定map的值,例如映射&LT;串,串&GT;容易。
然后你可以使用
easy["abc"] = "efg"; //like this
我想你需要
string a[100][2] = {{"Ship","A large boat"}, {"Ladder","A Piece of Apparatus that helps you climb things"},{"Water","What the human body is mainly composed of"}};
map<string,string> easy;
for(int i=0; i<3; i++)
easy[a[i][0] ] = a[i][1];
然后你可以像这样使用简单的[&#34; Ship&#34;]。