Article View: pl.comp.os.linux.programowanie
Article #60275Re: C++. Czytanie pliku txt i inne kombinacje.
From: Maciej Sobczak
Date: Mon, 31 Oct 2005 08:49
Date: Mon, 31 Oct 2005 08:49
57 lines
2477 bytes
2477 bytes
tj wrote:
> Interesują mnie metody zczytania z pliku ciągów znaków,
> które są oddzielone tabulatorem i wiersze
> są zakończony ENTEREM oraz zamiana niektórych łańcuchów na liczby
> typu int?
Jeżeli wszystkie wiersze mają taką samą liczbę pól (i jesteś tego
pewny), to po prostu korzystaj z operatora >>:
int numer;
string miesiac;
string kod;
int liczba1, liczba2;
ifstream plik("tekst.txt");
i dla każde linii:
plik >> numer >> miesiac >> kod >> liczba1 >> liczba2;
Nie ma znaczenia, czy będzie tam tabulator, spacja czy enter -
operator>> znajdzie następne pole, gdziekolwiek by ono nie było. Liczą
się tylko białe znaki.
Natomiast jeśli każda linia może mieć inną liczbę końcowych pól, to
musisz najpierw rozpoznać linie:
ifstream plik("tekst.txt");
string linia;
while (getline(plik, linia))
{
// robimy strumień obsługujący jedną linię:
istringstream sl(linia);
int numer;
string miesiac;
string kod;
sl >> numer >> miesiac >> kod;
vector<int> liczby;
int liczba;
while (sl >> liczba) // czyta do końca strumienia (czyli linii)
{
liczby.push_back(liczba);
}
// tutaj liczby jest tablicą ze wszystkimi liczbami do końca linii
// ...
}
Ten przykład zakłada, że plik ma poprawny format.
--
Maciej Sobczak : http://www.msobczak.com/
Programming : http://www.msobczak.com/prog/
Technical Details
Message-ID:
<dk4lpv$7bt$1@sunnews.cern.ch>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!irazu.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!newsReferences:
<pan.2005.03.29.21.18.33.184495@_Wytnij_elknet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!irazu.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!news From: Maciej Sobczak <no.spam@no.spam.com> Newsgroups: pl.comp.os.linux.programowanie Subject: Re: C++. Czytanie pliku txt i inne kombinacje. Date: Mon, 31 Oct 2005 09:49:03 +0100 Organization: CERN - European Laboratory for Particle Physics Lines: 57 Message-ID: <dk4lpv$7bt$1@sunnews.cern.ch> References: <pan.2005.03.29.21.18.33.184495@_Wytnij_elknet.pl> NNTP-Posting-Host: abpc10883.cern.ch Mime-Version: 1.0 X-Trace: sunnews.cern.ch 1130748543 7549 (None) 137.138.37.241 X-Complaints-To: news@sunnews.cern.ch User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050922 Red Hat/1.7.12-1.1.3.2.SL3 X-Accept-Language: en-us, en In-Reply-To: <pan.2005.03.29.21.18.33.184495@_Wytnij_elknet.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit