2015-11-24 1 views
-1

J'essaie de trouver le moyen le plus simple de convertir un tableau de chaînes de nombres en un tableau int afin que je puisse l'utiliser dans les calculs. Stringstream et stoi ont jusqu'ici tous les deux écrasé le programme ou n'ont pas fonctionné. De l'aide? Merci!Conversion C++ du tableau de chaînes en tableau int sans écraser le programme

int counter = 0; 
string nums[51]; 
while (! rel.eof()) 
{  
    getline(rel, tuple); 
    cout<<tuple<<endl; 
    //minituple[counter] = tuple.substr(0,4); 
    //counter++; 
    istringstream iss(tuple); 

    do 
    { 
     string found_num; 
     iss >> found_num; 

     if (iss.fail()) 
      break; 

     char goaway; 
     goaway = found_num.at(0); 
     if (goaway == '\n') 
      counter--; 
     else if (goaway == ' ') 
      counter--; 
     { 
      nums[counter] = found_num; 
      cout << "Substring: " << found_num << endl; 
     } 
     counter++; 
    } while (iss);  
} 

int int_nums[51]; 
for (int i = 0; i <= 51; i++) 
{ 
    if (!nums[i].empty()) 
    { 
     stoi(nums[i]); 
    } 
} 
+3

S'il vous plaît afficher le code que vous avez essayé le programme qui est écrasé. – TartanLlama

+0

Vous pouvez éditer votre question en utilisant [ce lien] (http://stackoverflow.com/posts/33891808/edit). – TartanLlama

+0

Veuillez lire [Comment demander] (http://stackoverflow.com/help/how-to-ask). Vous devriez publier un [MVCE] (http://stackoverflow.com/help/mcve) et l'erreur complète afin que nous puissions diagnostiquer votre problème. – TartanLlama

Répondre

0

Une fois que vous avez chargé votre tableau de chaînes que vous pouvez simplement faire:

std::transform(std::begin(nums), std::end(nums), std::begin(int_nums), 
       [](auto const &str) { return std::stoi(str); }); 

LIVE DEMO