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

question-closed Jak to naprawić? | C++

0 głosów
124 wizyt
pytanie zadane 10 kwietnia 2017 w C i C++ przez WireNess Stary wyjadacz (11,130 p.)
zamknięte 10 kwietnia 2017 przez WireNess

​Cześć!

Mam pewien problem. Mianowicie: 

Zapisałem do pliku tekstowego liczbę 100. Gdy chcę po jakimś czasie wczytać tę wartość do zmiennej całkowitej, kompilator wykrywa błąd!

Możliwe, że jest to spowodowane tym, że używam metody getline(); ​​​​​​

Możliwe również, że wartość 100 jest łańcuchem, ponieważ gdy wczytuje tę wartość do zmiennej string, wszystko działa. Problem w tym, że gdy chcę operować na tej zmiennej nie mogę tego robić, ponieważ jest to wartość string a nie int :/

 

Sorry, że tak chaotycznie to wytlumaczyłem, ale myśle, że wystarczająco aby zrozumieć ;)

Pozdr

komentarz zamknięcia: Rozwiązany

2 odpowiedzi

+1 głos
odpowiedź 10 kwietnia 2017 przez Knayder Nałogowiec (38,090 p.)
wybrane 10 kwietnia 2017 przez WireNess
 
Najlepsza

Po pierwsze, lepiej się czyta, kiedy wszystko jest napisane tak samo, a nie różne rodzaje i wielkości czcionki.

Rozwiązaniem twojego programu jest konwersja stringa na int.

W bibliotece cstdlib znajduje sie funkcja atoi(const char * src); Jak widzisz, przyjmuje tablicę charów, czyli stringa.
Żeby ją wywołać, wywołujesz metodę klasy string ( c_str() ), która zwraca ci właśnie taką tablicę jakiej potrzebujesz.

#include <string>
#include <cstdlib>
......
......
std::string text = "123";
int a = atoi( text.c_str() );

 

komentarz 10 kwietnia 2017 przez WireNess Stary wyjadacz (11,130 p.)

Z reguły nie używam formatowania tekstu, lecz tym razem coś mnie do tego skłoniło, za co serdecznie przepraszam :D

 

Przeanalizuje funkcje atoi(); i zaraz napisze ;)

1
komentarz 10 kwietnia 2017 przez Knayder Nałogowiec (38,090 p.)

Od C++ 11 jest też zamiennik tej funkcji.

Jest nią funkcja std::stoi(const string &str);

 

#include <string>
...
...
std::string text = "123";
int a = std::stoi(text);

 

1
komentarz 10 kwietnia 2017 przez Knayder Nałogowiec (38,090 p.)

Tutaj masz linki do dokumentacji obu funkcji:
std::stoi
atoi

 

komentarz 10 kwietnia 2017 przez WireNess Stary wyjadacz (11,130 p.)
Dzięki! Funkcja atoi działa :)

 

Pozdr
komentarz 10 kwietnia 2017 przez Kodeman Gaduła (4,520 p.)
Można spytać, czy któraś czymś się wyróżnia? Jest lepsza i gorsza funkcja?
komentarz 10 kwietnia 2017 przez WireNess Stary wyjadacz (11,130 p.)

Według mnie te obie funkcje bardzo się nie różnią, ale wydaje mi się, że stoi jest bardziej rozbudowana od atoi (wkońcu różnica między C a C++11 jest :D)

 

PS: Nie jestem pewien czy nie ma jeszcze jakiejś ,,reprodukcji" atoi w C++14

komentarz 10 kwietnia 2017 przez Knayder Nałogowiec (38,090 p.)
Jestem na telefonie, więc dlugo bym pisał, więc linkuję.

http://stackoverflow.com/questions/20583945/what-is-the-difference-between-stdatoi-and-stdstoi
–1 głos
odpowiedź 10 kwietnia 2017 przez QizmoPL Stary wyjadacz (11,570 p.)
przywrócone 10 kwietnia 2017 przez QizmoPL
Pokaz kod i kod bledu
komentarz 10 kwietnia 2017 przez QizmoPL Stary wyjadacz (11,570 p.)
Dlaczego minus?
komentarz 10 kwietnia 2017 przez WireNess Stary wyjadacz (11,130 p.)

Po pierwsze: gdybym miał zamiar podać kod - bym go podał. W tym pytaniu nie ma potrzeby udostępniania moich ,,wypocin"

Po drugie: ta odpowiedź w żadnym stopniu mi nie pomogła - dlatego minus

komentarz 10 kwietnia 2017 przez QizmoPL Stary wyjadacz (11,570 p.)
Wiesz ile moze byc mjejsc w ktorych popleniles blad? Twoj kod napewno nie jest warty kopiowania, wiec nie masz sie czym bac, ze ktos sie pod nim podpisze, nie rozumiem ludzi ktorzy boja sie pokazc swoj kod.
komentarz 10 kwietnia 2017 przez WireNess Stary wyjadacz (11,130 p.)

Nie boję się pokazać kodu - po prostu - nie widzę potrzeby jego udostępniania!

komentarz 10 kwietnia 2017 przez QizmoPL Stary wyjadacz (11,570 p.)
I to jest najgorsze, idziesz do lekarza, ale nie pokazesz mu sie bo nie wiedzisz potrzeby
komentarz 10 kwietnia 2017 przez WireNess Stary wyjadacz (11,130 p.)

Jak do ściany laugh

Podobne pytania

0 głosów
1 odpowiedź 378 wizyt
pytanie zadane 23 października 2017 w JavaScript, jQuery, AJAX przez Ugari Nowicjusz (200 p.)
0 głosów
1 odpowiedź 95 wizyt
pytanie zadane 9 czerwca 2017 w HTML i CSS przez xdmik23 Bywalec (2,100 p.)
+1 głos
1 odpowiedź 193 wizyt
pytanie zadane 27 marca 2017 w Systemy operacyjne, programy przez Tomcio2000 Użytkownik (770 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

64,840 zapytań

111,301 odpowiedzi

234,095 komentarzy

46,709 pasjonatów

Przeglądających: 198
Pasjonatów: 8 Gości: 190

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...