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

Konwersja string do int

Ostatnio zmodyfikowano 2013-09-26 18:14
Autor Wiadomość
wiktor16s
Temat założony przez niniejszego użytkownika
Konwersja string do int
» 2013-09-25 22:15:44
Witam

Mam pętlę w której zawarłem:
C/C++
string url = "00000001";
int liczba;
liczba = atoi( url.c_str() - 0 );

cout << liczba << endl;

i reszta kodu.
 pętla powtarza się co pół sekundy.
Mój problem polega na wyświetlaniu. Przykładowo powinno się wyświetlić
00000001
 wyświetla mi się
000000010
 z jakimś 0 dodanym na końcu. A jeśli
url = " ";
To zamiast pustej lini mam 0. Jak mam się pozbyć tego 0?
P-92665
DejaVu
» 2013-09-25 23:09:58
Może problemem jest pętla, a nie konwersja danych? :) Poza tym czemu od c_str() chcesz odjąć 0?
P-92666
wiktor16s
Temat założony przez niniejszego użytkownika
» 2013-09-26 07:28:51
tak było w jakimś przykładzie konwersji string 2 int
http://4programmers.net/C​/Konwersje_int_na_string_i_stri​ng_na_int#id-C​/C++-sscanf\ tutaj też jest pare przykładów, ale albo zamiast 0000000 mam 2973633...cośtam albo to dziwne 0 i za Chiny nie wiem co z tym zrobić ;/
P-92669
Wiesiek
» 2013-09-26 08:37:35
Nie wiem czemu ma Ci wyświetlać "00000001", skoro na cout wysyłasz int. Powinno raczej wyjść "1", chyba, że cout ma ustawione specjalne formatowanie (romiar i wypełnianie zerami pustych miejsc).
Odejmowanie zera (url.c_str()-0) jest niegroźne, choć niepotrzebne - wskaźnik do tablicy znakowej url.c_str() przesuwasz w lewo o 0. Jeśli zrobisz przesunięcie w prawo o 6, to będziesz miał "01" - można sprawdzić na napisie "123456789", wtedy przesunięcie o +6 da wynik "789".
Jeśli u Ciebie nie ma url.c_str()-'0' (przesunięcie w lewo o 48), to na pierwszy rzut oka nie widać problemu. Objawy sugerują przesuwanie adresu do konwertowanego napisu.
Po konwersji " " na int wyświetlanie znaku 0 nie jest dziwne - nie ma liczby typu int " ".
P-92670
DejaVu
» 2013-09-26 09:37:31
Podaj rzeczywisty kod, a nie wydumany, w którym twierdzisz, że coś jest źle.

Tu też masz przykład: » standard Catoi
P-92675
wiktor16s
Temat założony przez niniejszego użytkownika
» 2013-09-26 15:00:21
Tutaj kod pętli
C/C++
while( true )
{
   
    CURL * curl;
    curl = curl_easy_init();
    curl_easy_setopt( curl, CURLOPT_URL, "http://www.kamsac.pl/php-testy/dziwig/read.php" );
    string url;
    int liczba;
   
    liczba = atoi( url.c_str() + 0 );
   
    curl_easy_getinfo( curl, CURLINFO_RESPONSE_CODE, url.c_str() );
   
    curl_easy_perform( curl );
    curl_easy_cleanup( curl );
   
    cout << liczba << endl;
   
   
    OutPort( 0x378, liczba );
    //system("PAUSE");
   
    if( url == "1" )
    {
        cout << "Kam is good" << endl;
    }
   
    if( url == "0" )
    {
       
        cout << "Vic is good" << endl;
    }
   
    Sleep( bufor );
}

Jakiś pomysł? Coś robię źle?
P-92676
akwes
» 2013-09-26 16:21:03
C/C++
int liczba;
liczba = atoi( url.c_str() + 0 );

Chcesz zapisać adres url składający się z literek do inta?

Który ma wartość
C/C++
string url;
Jaką?
P-92685
wiktor16s
Temat założony przez niniejszego użytkownika
» 2013-09-26 16:28:29
W stringu mam zapisaną wartość ze strony php
url przyjmuje wartości: 00000000 do 01111111 są to same liczby
P-92686
« 1 » 2 3
  Strona 1 z 3 Następna strona