我一直在尝试将数组中的第一个整数添加到第二个整数,但是我得到的只是随机字母。我该怎么办?
我尝试过。
firstArray[1] = firstArray[1] + firstArray[0];
firstArray[1] = FirstArray[0];
这很好用,但我似乎无法将两个数字相加或相减。
#include <iostream>
#include<string>
#include<vector>
#include<fstream>
using namespace std;
string firstArray = {0,0, '/', 0, 0, '/', 0, 0};
int main(){
cout << firstArray <<endl;
firstArray[1] = firstArray[0]; //this works
cout << firstArray << endl;
cout << firstArray <<endl;
firstArray[1] = firstArray[0] + firstArray[1]; //this is the bit that doesn't work
firstArray[1] = firstArray[1] + firstArray[0]; //neither does this
cout << "thanks guys :)" <<endl;
return 0;
}
答案 0 :(得分:1)
将std::vector<int>
用于整数数组。我看到问题中的代码使用string
;这是不正确的-string
用于字符串。
#include <iostream>
#include <vector>
std::vector<int> firstArray = {3, 4, 42, 69};
int main(){
std::cout << firstArray[0] << '\n';
std::cout << firstArray[1] << '\n';
firstArray[1] = firstArray[0]; //this works
std::cout << firstArray[0] << '\n';
std::cout << firstArray[1] << '\n';
firstArray[1] = firstArray[0] + firstArray[1]; //this works
std::cout << firstArray[0] << '\n';
std::cout << firstArray[1] << '\n';
}
答案 1 :(得分:1)
如果您以字符串形式接收输入,则可以将前两位数字转换为整数,然后将它们加起来。
std::string str = "00/00/00";
int n1 = std::stoi(str.substr(0, 1));
int n2 = std::stoi(str.substr(1, 2));
int s = n1 + n2;
std::cout << s;
答案 2 :(得分:1)
C ++中的字符在内部表示为整数,但具有范围。我认为,给您带来的困惑是,如果您在双引号中写入整数,则不能将其用作整数,而应该认为它是一个字符。
但是,如果要使用整数,则需要整数数组,如果要将输入作为字符串,则必须解析这些字符串以使它们成为整数。
为此,您可以使用stoi
转换为整数,使用stod
将其转换为双精度,并且可以通过包含<string>
和{{1}来使用这两个函数} namespace
。