Skocz do zawartości

c++, odczytywanie linii pliku


Recommended Posts

Witam, 

 

Mam problem związany z odczytem danych z pliku tekstowego w c++. Znam metody na odczytanie całego wiersza danych z pliku poprzez strumienie lub instrukcjami fscanf, problem polega na tym, że muszę odczytać oddzielnie każde słowo z danego wiersza danych (podane przeze mnie opcję sepapruję wyrazy tylko jeżeli w pliku występują spacje), które są oddzielone np. : lub ;. 

np.

Adres:Ulica:Nr_mieszkania

Dobrze by było mieć to od razu w stringach.

 

char str1[10], str2[10], str3[10];
char year[100];
FILE * fp;
fp = fopen ("file.txt", "r+t");
fscanf(fp, "%s:%s:%s:%s", str1, str2, str3, year);
printf("Read String1 |%s|\n", str1 );
 printf("Read String2 |%s|\n", str2 );
printf("Read String3 |%s|\n", str3 );
printf("Read Integer |%s|\n", year );
fclose(fp);
 
Powyżej przykład programu, który "czyta" oddzielnie wyrazy z wiersza ale tylko oddzielone spacjami.
Z góry dzięki za pomoc ; ) 
Link to post
Share on other sites

Wydaję mi się, że udało się znaleźć dosyć dobre rozwiązanie. Wykorzystałem trzeci argument funkcji getline, w którą można wprowadzić zmienną typu char, do której jest odczytywana linia tekstu (w moim przypadku wpisywałem ":", ale można to zastąpić dowolnym znakiem), ponadto kolejne wykorzystanie tej funkcji kontynuuje odczyt tej samej linii tekstu tak więc nie ma problemu z podziałem całego wiersza według własnych potrzeb.

 

Dzięki za pomoc,

Temat do zamknięcia

Link to post
Share on other sites
Gość
This topic is now closed to further replies.
  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...