我有用户输入9个数字。我需要将字符串数转换为int
string num;
int num_int, product[10];
cout << "enter numbers";
cin >> num;
for(int i =0; i<10; i++){
product[i] = num[i] * 5; //I need the int value of num*5
}
答案 0 :(得分:5)
为什么不立即阅读整数?
int num;
cin >> num;
答案 1 :(得分:4)
您不需要有两个变量。通常在C ++中即时转换,在 输入流,没有看到文本作为字符串。那么你 可以简单地写一下:
int num;
std::vector< int > product( 10 );
std::cout << "enter number: ";
std::cin >> num;
...
请注意,我已经更正了您将数组声明为的方式
好。您通常不会在C ++中使用int product[10];
。
(而且你几乎从不在同一条线上定义两个变量,
即使语言允许它。)
答案 2 :(得分:2)
到目前为止转换为字符串并返回的最简单方法是使用转换函数。
std::string s="56";
int i=std::stoi(s);
http://en.cppreference.com/w/cpp/string/basic_string/stol
并返回
int i=56;
std::string s=std::to_string(i);
http://en.cppreference.com/w/cpp/string/basic_string/to_string
当然,如果您正在阅读输入,那么您也可以在那里进行输入
int i;
std::cin >> i;
答案 3 :(得分:1)
以下是完整的示例:
//library you need to include
#include <sstream>
int main()
{
char* str = "1234";
std::stringstream s_str( str );
int i;
s_str >> i;
}
答案 4 :(得分:1)
如果你绝对必须使用std::string
(由于任何其他原因......也许是家庭作业?)那么你可以使用std::stringstream
对象将它从std::string
转换为{{1 }}
int
或者,您可以使用C中的std::stringstream strstream(num);
int iNum;
num >> iNum; //now iNum will have your integer
功能来帮助您
atoi
所以你的程序应该是这样的:
std::string st = "12345";
int i = atoi(st.c_str()); // and now, i will have the number 12345