2016-12-22 10 views
-2

私はint型の文字列をシングしますが失敗したので、strcpyを使用して文字列をchar型にコピーし、atoiを使ってint型に変換します。しかし、まだ失敗しました。手伝って頂けますか? '文字' からのエラー「無効な変換 'const_char *' だ 。 どうもありがとうございました。cstringまたはstringをintに変換します

#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

ようこそスタックオーバーフロー。 [The Tour](http://stackoverflow.com/tour)を読み、[ヘルプセンター](http://stackoverflow.com/help/asking)の資料を参考にしてください。ここに聞いてください。 –

+0

ありがとう、私はC + +とスタックオーバーフローの両方で新鮮な女の子です。あなたの助けが必要です! –

答えて

0

のstd ::あなたが直接

int number; 
std::cin >> number; 

の場合を行うことができますので、CINは、整数がかかりますあなたは絶対に文字列で行ってみたい、次はあまりにも

std::string test_str; 
int test_number; 

std::cin >> test_str; 

test_number = atoi(test_str.c_str()); 
+0

ありがとう、私はint配列を入力するcinを使用することはできないと思う。私はint型の配列で何かをしたいのですが、私はcinを止めるのに使うことができる記号がないので、whileやwhileやdoを使ってはいけません。 –

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); 
+0

ありがとうございますが、char配列の任意の値をint配列に変更したいだけです。 –

関連する問題