我想要一个int字符串,但是失败了,所以我cin string然后使用strcpy将字符串复制到char,然后使用atoi将char转换为int。但仍然失败了。你能帮助我吗? 这是错误"来自' char'的无效转换to' const_char *'。 非常感谢。
#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
void juge_output(int input_one[]);
void change(char middle_one[],int input_one[]);
using namespace std;
int main()
{
int input_one[1000],input_two[1000];
char operat,middle_one[1000],middle_two[1000];
string cin_one,cin_two;
cin>>operat;
cin>>cin_one;
cin>>cin_two;
strcpy(middle_one,cin_one.c_str());
strcpy(middle_two,cin_two.c_str());
change(middle_one,input_one);
change(middle_two,input_two);
juge_output(input_one);
cout<<operat;
juge_output(input_two);
return 0;
}
void juge_output(int input_one[1000])
{
if(input_one[0]>0)
cout<<input_one[0];
if(input_one[0]<0)
cout<<input_one[0];
for(int i=1;i<1000;i+2)
{
if(input_one[i]>1)
cout<<"X^"<<input_one[i];
if(input_one[i]==1)
cout<<"X";
}
for(int m=2;m<1000;m+2)
{
if(input_one[m]>0)
cout<<"+"<<input_one[m];
if(input_one[m]<0)
cout<<input_one[m];
}
}
void change(char middle_one[],int input_one[])
{
for(int i=0;i<1000;i++)
input_one[i]=atoi(middle_one[i]);
}
答案 0 :(得分:0)
std :: cin将采用整数,因此您可以直接执行
int number;
std::cin >> number;
如果你想绝对使用字符串,以下内容也可以使用
std::string test_str;
int test_number;
std::cin >> test_str;
test_number = atoi(test_str.c_str());
答案 1 :(得分:0)
您也可以直接使用字符串库函数:
std::string str1 = "45";
std::string str2 = "3.14159";
std::string str3 = "31337 with words";
std::string str4 = "words and 2";
int myint1 = std::stoi(str1);
int myint2 = std::stoi(str2);
int myint3 = std::stoi(str3);