• 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
122 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,110 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,110 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,110 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,110 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ź 359 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ź 189 wizyt
pytanie zadane 27 marca 2017 w Systemy operacyjne, programy przez Tomcio2000 Użytkownik (770 p.)
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

64,048 zapytań

110,437 odpowiedzi

231,288 komentarzy

47,817 pasjonatów

Przeglądających: 178
Pasjonatów: 5 Gości: 173

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.

...