2016-12-22 2 views
-2

Я хочу, чтобы cin int string, но не удалось, поэтому я cin string, а затем используйте strcpy для копирования строки в char, а затем используйте atoi для преобразования char в int. Но все равно не удалось. Вы можете мне помочь? Это ошибка «недопустимый преобразование из„полукокса“до„const_char *“. Большое спасибо.con't convert cstring или string to 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++, и в Stack Overflow. Мне нужна ваша помощь! –

ответ

0

станд :: CIN будет принимать целое, так что вы можете непосредственно сделать

int number; 
std::cin >> number; 

Если вы хотите абсолютно пойти со строкой, должно работать слишком

std::string test_str; 
int test_number; 

std::cin >> test_str; 

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

Спасибо, я не могу использовать cin для ввода массива int. Я хочу что-то сделать в массиве int, но я не должен использовать это или пока что-либо делать, потому что у меня нет знака, который можно использовать для остановки cin. –

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

Спасибо, но я просто хочу изменить любое значение в массиве символов массива int. –