Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z dodawaniem

Ostatnio zmodyfikowano 2014-08-18 17:20
Autor Wiadomość
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).

C/C++
#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;
    }
}
P-115668
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.
P-115671
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.
C/C++
int l1 =( int ) liczba1[ liczba1.size() - 1 ];
int l2 =( int ) liczba2[ liczba2.size() - 1 ];
P-115681
michal11
» 2014-08-18 15:33:17
To nie jest konwertowanie tylko rzutowanie i to jeszcze brzydkie.

C/C++
string liczba = "123";
istringstream iss( liczba );

int zmienna;

iss >> zmienna;

Coś takiego powinno działać.

edit.
Albo juz chyba lepiej

C/C++
#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.
P-115684
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??
P-115685
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.
P-115686
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.
C/C++
#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;
    }
}
P-115691
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
P-115692
« 1 » 2
  Strona 1 z 2 Następna strona