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

Zamiana stringa na inta (najprostrzy sposób)

Object Storage Arubacloud
+1 głos
281 wizyt
pytanie zadane 27 marca 2018 w C i C++ przez Scypyon Gaduła (3,450 p.)

Chodzi mi o najprostszy z możliwych sposobów, od razu zaznaczam nie korzystam z c++ 11 ani z najnowszych kompilatorów  jedynie biblioteka iosstream, np. z użyciem tabeli asci

 

Potrzebne jest mi to do zamiany np stringa 20213 w systemie ósemkowym na stringa w systemie dziesiętnym(zadanie maturalne)

2 odpowiedzi

0 głosów
odpowiedź 27 marca 2018 przez Beginer Pasjonat (22,110 p.)
wybrane 27 marca 2018 przez Scypyon
 
Najlepsza
    #include <string.h>
    #include <iostream>

    string tekst = "20213";
    int A;
    sscanf(tekst.c_str(), "%d", &A);
    cout << A << endl;

 

komentarz 27 marca 2018 przez Scypyon Gaduła (3,450 p.)
scanf to jak cout? nie?
komentarz 27 marca 2018 przez Scypyon Gaduła (3,450 p.)

Nie działa, liczby podaje z pliku 

int pktb(string liczba){


    int A;
    scanf(liczba.c_str(), "%d", &a);
    return a;

}

Mógłbyś mi wytłumaczyć o co chodzi z tą linijką? :

scanf(liczba.c_str(), "%d", &a); <--- każdy element z osobna

komentarz 27 marca 2018 przez Beginer Pasjonat (22,110 p.)
Nie, to nie jest cout (który masz poniżej).

Liczbę integer jest w zmiennej int A.   Aby się przekonać, że jest to liczba, napisz w ten sposób (dodaj inną liczbę):

cout ... A + 5 .... endl;

I zobacz, co się wyświetli.

P.S. Nadaję z tabletu, nie mam odpowiednich znaków.
komentarz 27 marca 2018 przez Scypyon Gaduła (3,450 p.)
#include <iostream>
#include <fstream>
#include <string.h>

using namespace std;

int pkta(string liczba){

    if(liczba[0]==liczba[liczba.size()-1])return 1;
    else return 0;
}

int main()
{
    fstream plik;

    plik.open("dane.txt",ios::in);

    string c;
    int a= 0;
    int b= 0;
    int z;

    while(!plik.eof()){
        plik>>c;

        a+=pkta(c);
        scanf(c.c_str(), "%d", &z);

    }
    cout<<z+5<<endl;

    cout<<"Pkt A. Wynik: "<<a<<endl;
    cout<<"Pkt B. Wynik: "<<b<<endl;

    return 0;
}

Kompiluje się ale nie wyrzuca rozwiązania, wgl w codeblocks nie podświetla się scanf, to mój cały kod, tutaj jeszcze zrobiłem jeden podpunkt, 2013 matura PR zad 6

komentarz 27 marca 2018 przez Beginer Pasjonat (22,110 p.)

@Scypyon,

Nie działa, ponieważ jest: int A (duże).

Wystarczy, że przerobisz na: int a (małe).

komentarz 27 marca 2018 przez Scypyon Gaduła (3,450 p.)
wyrzuciło wynik, czemu wielkość liter ma znaczenie? i co to jest to c.c_str(), "%d" &Z?
komentarz 27 marca 2018 przez Beginer Pasjonat (22,110 p.)
Przecież w języku C++ wielkość liter ma znaczenie.

Int A  i  int a   to są dwie różne zmienne.  Tak samo dla Z  i  z.

U Ciebie w zmiennej 'c' jest string,  a w zmiennej 'z' jest liczba integer, po przekształceniu.

Albo decydujesz się na duże litery,  albo na małe.  Żaden "mixt" nie wchodzi w rachubę.
komentarz 27 marca 2018 przez Scypyon Gaduła (3,450 p.)
Rozumiem, a jeżeli chodzi o

c.c_str(), "%d" &Z?
komentarz 27 marca 2018 przez Beginer Pasjonat (22,110 p.)
To jest funkcja (jeszcze z języka C),  która stringa 'c' przekształca na int-a 'Z'.

Widziałem, że w programie używałeś małe 'z'.  Uważaj, żeby nie pomieszać. Sprawdź również, czy przy tej funkcji nie zgubiłeś jednego 's'  (powinny być dwa).
komentarz 27 marca 2018 przez Scypyon Gaduła (3,450 p.)
Dziękuje :) Daje naj
0 głosów
odpowiedź 27 marca 2018 przez Hiskiel Pasjonat (22,830 p.)
komentarz 27 marca 2018 przez Scypyon Gaduła (3,450 p.)
coś więcej? :D

Podobne pytania

0 głosów
2 odpowiedzi 364 wizyt
0 głosów
1 odpowiedź 215 wizyt
pytanie zadane 15 lutego 2021 w C i C++ przez Rainbow99 Początkujący (430 p.)
0 głosów
1 odpowiedź 285 wizyt
pytanie zadane 22 grudnia 2017 w C i C++ przez niezalogowany

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...