• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wczytywanie liczb oddzielonych spacjami w C++.

VPS Starter Arubacloud
0 głosów
3,485 wizyt
pytanie zadane 24 września 2016 w C i C++ przez Zerkles Nowicjusz (170 p.)

Witam, mój program ma za zadanie wczytać x liczb podanych w jednej linii oddzielonych spacjami i podać ich sume. Wymyśliłem mniej więcej jak to zrobić ale nie mogę przekonwertować stringa do int, gdzie mam błąd (Nie patrzcie na tą pętle bo to tylko do testu :D)?

 

#include <iostream>
#include <string>
#include <cstdlib>


using namespace std;

string wejscie,szukaj=" ",liczbaStr;
int liczbaInt,suma;

int main()
{
    getline(cin,wejscie);
        while(suma<100000)
        {
            size_t pozycja=wejscie.find(szukaj);  
            liczbaStr=wejscie.substr(0,pozycja);  
            liczbaInt=stoi(liczbaStr);            
            suma+=liczbaInt;                      
            
        }

    cout<<suma;
    
    return 0;
}

 

komentarz 25 września 2016 przez Zerkles Nowicjusz (170 p.)

Rozwiązałem problem, w razie gdyby ktoś potrzebował to wrzucam gotowy program. Dzięki za podpowiedź Hipcio, nie pomyślałem że w nawiasie jest "." zamiast "," :D.

 

#include <iostream>
#include <string>
#include <cstdlib>



using namespace std;

string wejscie,liczbaStr,szuk1=" ",szuk2="-123456789";
int liczbaInt,suma,wszystkie;

int main()
{
    getline(cin,wejscie);
    wejscie+="a";
    int dlugosc=wejscie.length();
        while(wejscie.find_first_not_of(szuk1)!=string::npos)
        {
            size_t poczatek=wejscie.find_first_not_of(szuk1);
            ///cout<<"poczatek: "<<poczatek<<endl;
	    size_t koniec=wejscie.find_first_not_of(szuk2,poczatek);
            ///cout<<"koniec: "<<koniec<<endl;
            liczbaStr=wejscie.substr(poczatek,koniec);
            ///cout<<"liczbaStr: "<<liczbaStr<<endl;
            wejscie.replace(0,koniec+1," ");
            ///cout<<"wejscie: "<<wejscie<<endl;
            liczbaInt=atoi(liczbaStr.c_str());
            suma=suma+liczbaInt;
            ///cout<<"liczbaInt: "<<liczbaInt<<endl;
        }
        cout<<suma<<endl;
    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 24 września 2016 przez niezalogowany
wybrane 25 września 2016 przez Zerkles
 
Najlepsza
liczbaInt=atoi(liczbaStr.c_str());

Podobne pytania

0 głosów
1 odpowiedź 1,919 wizyt
pytanie zadane 13 października 2015 w Java przez natrov Gaduła (3,970 p.)
0 głosów
1 odpowiedź 9,115 wizyt
0 głosów
2 odpowiedzi 2,310 wizyt
pytanie zadane 1 lutego 2016 w Rozwój zawodowy, nauka, praca przez Pawel9922 Nowicjusz (160 p.)

92,830 zapytań

141,771 odpowiedzi

320,817 komentarzy

62,159 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...