Problem z dodawaniem
Ostatnio zmodyfikowano 2014-08-18 17:20
universe Temat założony przez niniejszego użytkownika |
Problem z dodawaniem » 2014-08-18 14:05:18 Witam, próbuję sobie napisać mnożenie pisemne , ale mam problem.Program wyczytuje ostatni znak ze stringa .Wszystko jest ok ale gdy chcę to pomnozyć daje mi 102(w wejściu 123 123). #include<iostream> #include <string> using namespace std; int main() { string liczba1; string liczba2; string liczba3; cin >> liczba1 >> liczba2; { cout << liczba1[ liczba1.size() - 1 ] << liczba2[ liczba2.size() - 1 ]; int l1 = liczba1[ liczba1.size() - 1 ]; int l2 = liczba2[ liczba2.size() - 1 ]; cout << l1 + l2; } }
|
|
michal11 |
» 2014-08-18 14:23:39 Nie możesz sobie od tak przypisać stringa do inta (tzn. możesz ale przypiszesz kod a nie tekst). Użyj istrngstream albo stoi. |
|
universe Temat założony przez niniejszego użytkownika |
» 2014-08-18 15:09:43 Kdy próbuję uzyć "stoi" kompilator wywala mi że nie jest członkiem std.Próbowałem przekonwertować to do inta , ale nadal nie działa. int l1 =( int ) liczba1[ liczba1.size() - 1 ]; int l2 =( int ) liczba2[ liczba2.size() - 1 ]; |
|
michal11 |
» 2014-08-18 15:33:17 To nie jest konwertowanie tylko rzutowanie i to jeszcze brzydkie. string liczba = "123"; istringstream iss( liczba );
int zmienna;
iss >> zmienna;
Coś takiego powinno działać. edit. Albo juz chyba lepiej #include <cstdlib>
string liczba = "123";
int zmienna = atoi( liczba.c_str() );
A tak nawiasem mówiąc to znalezienie tego w internecie to może 5 min. roboty jak ktoś wolno czyta. |
|
Mizzrym |
» 2014-08-18 15:45:42 Po co wczytujesz to do stringów jak potrzebujesz liczby?? Nie lepiej odrazu wczytać to do zmiennych typu int?? |
|
pekfos |
» 2014-08-18 16:07:25 Ale trafiacie z tymi swoimi radami.. Wypadało by przeczytać czasem, o co chodzi. próbuję sobie napisać mnożenie pisemne |
Wszystko jest ok ale gdy chcę to pomnozyć daje mi 102(w wejściu 123 123).
|
I prawidłowo. Znak '0' nie ma wartości liczbowej 0, itd. |
|
universe Temat założony przez niniejszego użytkownika |
» 2014-08-18 16:44:16 Znak nie ma wartość , ok, ale to w sumie ma dodać 3 do 3 a mam 12?Kminiłem i napisałem to tak, bo stringa nie przyjmuje więc jest char. #include<iostream> #include <string> #include <cstdlib> using namespace std; int main() { string liczba1; string liczba2; string liczba3; cin >> liczba1 >> liczba2; { cout << liczba1[ liczba1.size() - 1 ] << liczba2[ liczba2.size() - 1 ]; char l1 = liczba1[ liczba1.size() - 1 ]; char l2 = liczba2[ liczba2.size() - 1 ]; cout << l1 + l2; } }
|
|
Jacob99 |
» 2014-08-18 16:51:16 Rozumiesz różnicę między wartością znaku, a kodem znaku? dodając char do char zamiast int do int zamiast 0 + 1 robisz np. 48 + 49; Tabela znaków ASCII |
|
« 1 » 2 |