🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #60275

Re: C++. Czytanie pliku txt i inne kombinacje.

#60275
From: Maciej Sobczak
Date: Mon, 31 Oct 2005 08:49
57 lines
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!news
References: <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