Witam wszystkich,
Rozwiązywałem sobię ostatnie zadanie w rozdziale 22. Treśc:
Napisz program, który wywoływany będzie z wieloma parametrami będącymi bądź to liczbami(zmiennoprzecinkowymi), bądź to wyrazami. Parametrow tych może być dowolnie dużo i nigdy nie wiesz, który z nich będzie liczbą, a który słowem. W programie wszystkie parametry, które są zapisem liczb poumieszczaj w tablicy double. Wszystkie nie-liczby zgromadz w tablicy obiektówe typu string. Wypisz na ekranie zawartość obu tablic.
Do tej pory napisałem taki program:
#include <iostream>
#include <vector>
#include <sstream>
using namespace std;
int main(int argc, char **argv)
{
vector <string> words; //Vector przechowujacy wyrazy
vector <double> numbers; //Vector przechowujacy liczby
stringstream strumien;
for(int i = 1; i < argc; i++)
{
strumien.str("");
double liczba = 0;
strumien << argv[i];
strumien >> liczba;
if(!strumien) //Jesli ustawiona jest flaga bledu w strumienie strumien
{
strumien.clear(strumien.rdstate() & ~ios::failbit); //Usuniecie flagi bledu
words.push_back(strumien.str()); //Dodanie do vectora words
}
else //Jesli wszystko jest w porzadku
{
numbers.push_back(liczba);
}
}
cout << "Parametry:\n"
<< "Liczby:\n";
for(int i = 0; i < numbers.size(); i++)
{
cout << numbers[i] << endl;
}
cout << "wYRAZY\n";
for(int i = 0; i < words.size(); i++)
{
cout << words[i] << endl;
}
}
Wszystko jest dobrze jeśli wypisuje elementy zerowe tablic, ale dalej już nie. Proszę o pomoc.