[c++]Wczytywanie z pliku dwóch typów danych

Olka0505
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 8 paź 2014, o 21:35
Płeć: Kobieta
Lokalizacja: Polska

[c++]Wczytywanie z pliku dwóch typów danych

Post autor: Olka0505 »

Mam pytanie: jak wczytać z pliku txt. dane typu string i int? Wiem, że powinno być coś takiego jak zobaczy spacje to, żeby szło dalej. Poproszę o w miarę proste formułki.

Coś w typie:
Mama 45
Tata 34
Dziecko 16

Ilosc_zjedzonych_cukierkow
mama 23
tata 13
dziecko 3

Również dobrze by było, aby zliczało z drugiej kolumny liczby, bo to już jako tako mam, ale z tymi wszystkimi formułkami mi się trochę myli. Nie chciałabym używać tablic.
No i co zrobić aby się zatrzymało w miejscu ilosc_zjedzonych_cukierkow i np. przed tym dodawało liczby, a po tym "ilośc_zjedzonych_cukierków" sumowało i odejmowało od tej pierwszej kolumny przed tym wyrazem?
Niech wpisze to do pliku innego.

Dziękuję za każdą jakąkolwiek pomoc
Adifek
Użytkownik
Użytkownik
Posty: 1567
Rejestracja: 15 gru 2008, o 16:38
Płeć: Mężczyzna
Lokalizacja: Ostrzeszów/Wrocław
Podziękował: 8 razy
Pomógł: 398 razy

[c++]Wczytywanie z pliku dwóch typów danych

Post autor: Adifek »

Normalnie po kolei sczytujesz, np.:

Kod: Zaznacz cały

moj_plik >> moj_string >> moja_liczba;
Olka0505
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 8 paź 2014, o 21:35
Płeć: Kobieta
Lokalizacja: Polska

[c++]Wczytywanie z pliku dwóch typów danych

Post autor: Olka0505 »

Tak, to akurat wiem. Problem w tym, że nie nie da rady wczytać liczby po tekście. W sensie coś zrobić z nią. Chyba, że coś źle robię. Chciałabym, aby mi liczyło z tej drugiej kolumny liczby. A wychodzi mi cały czas 0 lub nic.
Adifek
Użytkownik
Użytkownik
Posty: 1567
Rejestracja: 15 gru 2008, o 16:38
Płeć: Mężczyzna
Lokalizacja: Ostrzeszów/Wrocław
Podziękował: 8 razy
Pomógł: 398 razy

[c++]Wczytywanie z pliku dwóch typów danych

Post autor: Adifek »

Pokaż kod (najlepiej w tagach od kodu).
Olka0505
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 8 paź 2014, o 21:35
Płeć: Kobieta
Lokalizacja: Polska

[c++]Wczytywanie z pliku dwóch typów danych

Post autor: Olka0505 »

Hm no w sumie to jest ciąg dalszy mojego poprzedniego pliku z tamtego tematu z wczoraj. Próbuję na kilka sposobów zrobić to, aby mi liczyło. Zmodyfikowałam oczywiście dane do tego, co tu napisałam. Po prostu mogę plik skopiować z tamtego tematu tutaj, nic więcej nie mam w sumie. Tylko moje próby, które raczej na nic się nie zdają. Nie wiem jak zrobić, aby mi przechodziło ten tekst i liczyło tylko liczby
Adifek
Użytkownik
Użytkownik
Posty: 1567
Rejestracja: 15 gru 2008, o 16:38
Płeć: Mężczyzna
Lokalizacja: Ostrzeszów/Wrocław
Podziękował: 8 razy
Pomógł: 398 razy

[c++]Wczytywanie z pliku dwóch typów danych

Post autor: Adifek »

Wszystko działa tak jak mówiłem:

Kod: Zaznacz cały

#include <iostream>
#include <fstream>
#include <string>


int main ()
{
	std::ifstream fin("abc.txt");
	int liczba=0, suma=0;
	std::string osoba; 
	while ( fin >> osoba >> liczba )
		suma+=liczba;
	
	std::cout << suma << std::endl;
	fin.close();
	return 0; 
}
Dla przykładowego pliku:

Kod: Zaznacz cały

mama 14
tata 13
ola 7
Dostaję poprawny wydruk:

Kod: Zaznacz cały

adifek@adifek-linux:~$ g++ mat.cpp -Wall -pedantic
adifek@adifek-linux:~$ ./a.out
34
Oczywiście możesz tez zatrzymywać tak jak chcesz: zmieniacjąc pętlę np. tak:

Kod: Zaznacz cały

while ( fin >> osoba >> liczba )
	{
		if( osoba == "text zatrzymujacy" )
			break;
		suma+=liczba;
	}
Olka0505
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 8 paź 2014, o 21:35
Płeć: Kobieta
Lokalizacja: Polska

[c++]Wczytywanie z pliku dwóch typów danych

Post autor: Olka0505 »

Jej... dziękuję. Tyle niepotrzebnych formułek wpisuje, a to tylko tyle potrzeba było. Dziękuję i za cierpliwość też. Mam jeszcze takie pytanie, a co mam zrobić, aby mi liczyło po tym tekście? I jeżeli mam taki kolejny tekst to co zrobić, aby liczyło od niego do tamtego? Czyli od tych "wydatków" do "zarobków"?

Coś takiego

Mama 6
Tata 3
Ola 2

Wydatki
Mama 3
Tata 2
Ola1

Zarobki
Mama 5
Tata 6
Ola 10
Adifek
Użytkownik
Użytkownik
Posty: 1567
Rejestracja: 15 gru 2008, o 16:38
Płeć: Mężczyzna
Lokalizacja: Ostrzeszów/Wrocław
Podziękował: 8 razy
Pomógł: 398 razy

[c++]Wczytywanie z pliku dwóch typów danych

Post autor: Adifek »

Wszystko, co potrzebne już masz wyżej. Dalej wystarczy tylko pomyśleć A z tego Cię nie będe wyręczał.
Olka0505
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 8 paź 2014, o 21:35
Płeć: Kobieta
Lokalizacja: Polska

[c++]Wczytywanie z pliku dwóch typów danych

Post autor: Olka0505 »

Próbuję na kilka sposobów, ale chyba naprawdę jestem tępa jeżeli chodzi o tę informatykę... przyznaję
ODPOWIEDZ