• 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++

VPS Starter Arubacloud
0 głosów
545 wizyt
pytanie zadane 10 kwietnia 2017 w C i C++ przez WireNess Stary wyjadacz (11,240 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 (37,640 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,240 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 (37,640 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 (37,640 p.)

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

 

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

 

Pozdr
komentarz 10 kwietnia 2017 przez Kodeman Gaduła (4,480 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,240 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 (37,640 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,440 p.)
przywrócone 10 kwietnia 2017 przez QizmoPL
Pokaz kod i kod bledu
komentarz 10 kwietnia 2017 przez QizmoPL Stary wyjadacz (11,440 p.)
Dlaczego minus?
komentarz 10 kwietnia 2017 przez WireNess Stary wyjadacz (11,240 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,440 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,240 p.)

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

komentarz 10 kwietnia 2017 przez QizmoPL Stary wyjadacz (11,440 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,240 p.)

Jak do ściany laugh

Podobne pytania

0 głosów
1 odpowiedź 1,390 wizyt
pytanie zadane 23 października 2017 w JavaScript przez Ugari Nowicjusz (200 p.)
0 głosów
1 odpowiedź 215 wizyt
pytanie zadane 9 czerwca 2017 w HTML i CSS przez xdmik23 Gaduła (3,000 p.)
+1 głos
1 odpowiedź 377 wizyt
pytanie zadane 27 marca 2017 w Systemy operacyjne, programy przez Tomcio2000 Użytkownik (900 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...