这就是我所拥有的:
char userInput;
int position;
vector<string> userVector(7);
vector<int> someVector(7,1);
cin >> userInput;
cin >> position;
if(userInput == 'X')
userVector[position] = '1';
if(userVector[position]-someVector[position] == 0)
cout << "Success"
我的问题是userVector[position]
实际上是一个字符,因为userVector
是一个字符串向量。但是,我需要进行此计算(userVector[position] - someVector[position])
,因为我需要确定结果是0还是其他数字。有什么帮助吗?
如果在这里没有意义,userVector必须是一个字符串向量,因为它是该程序要求的一部分。基本上,应该允许用户在userVector向量中的任何位置输入“X”,并且必须告诉他们它是否与预期输出匹配。
因此,在这种情况下,“预期输出”将是someVector,它在所有空格中都有1。我要做的是减去两个向量,这样如果用户输入除X之外的任何东西,向量减法将不等于0,从而导致程序执行不同的操作。
希望能够解决问题!
答案 0 :(得分:1)
如果我理解你的代码,你试图将表示十进制数的字符串转换为整数。你有几种方法可以做到这一点;例如,使用istringstream
:
int num;
if (!(istringstream(userInput[position]) >> num))
num = 0;
if (n - someVector[position] == 0) {
...
或者你可以使用好的atoi
:
if (atoi(userInput[position].c_str()) - someVector[position] == 0) {
如果我对你要做的事情有误,请澄清你想要做的事情......
答案 1 :(得分:0)
我无法弄清楚你在发表的声明中想要做些什么
问题。表达式userInput[position]
不合法,因为
userInput
不是指针,也不是任何可以转换为a的指针
指针。
但您的代码似乎与文字描述不符,
因为您将userInput
描述为字符串向量
(std::vector<std::string>
?),但代码将其声明为char
。