Skocz do zawartości
Prog

[c++] *.txt

Rekomendowane odpowiedzi

Otóż mam taki problem. Potrzebuję zczytać do programu kolejne linijki pliku *.txt. Problem w tym, że jeżeli w danej linijce nie wystąpi przejście do nowej linii to program się wywala...

 

Wiem, że jedna linijka ma 1025 znaków, ale niestety nic mi to nie daje. getline'em zczytuję poszczególne linijki z pliku, ale jeśli nie wystąpi w danej linijce przejście do nowej linii to program będzie w kółko zczytywał dane z tej samej linijki...

 

Dodam, że operacje na plikach wykonuję przy użyciu biblioteki fstream. Macie jakiś pomysł ? ? ?

 

Widzę dwa wyjścia. Albo nauczyć program zczytywać jedną linijkę do 1025 znaków i przechodzić do następnej linijki... tu problem jak przejść do następnej linijki...

Albo jakoś nadpisać przejście do nowej linii na końcu każdej liniji, ale to raczej niemożliwe, choć kto wie.

 

Z góry dziękuję za jakieś sugestie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wydaje mi sie, ze problem tkwi w tym, ze w ostatniej linii zamiast znaku przejscia do nastepnej linii masz EOF'a. Pokombinuj wiec z tym.

Niestety nie... np:

fstream plik;while(plik.eof()==0){plik.getline(linia, 1025);}

Taki kod przy wyjątku o którym mówiłem zczytuje przez cały czas tą samą linijkę, więc robi to w nieskończoność, bo nigdy nie natrafi na EOF.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

W C można to zrobić tak:

 

#include <stdio.h>

 

void main(void)

{

char wiersz[1025];

FILE *plik;

 

plik = fopen("plik.txt" , "r");

if (plik == NULL)

{

printf("Nie moge czytac pliku plik.txt!!!!!");

exit(1);

}

 

 

while (!feof(plik))

{

fgets(wiersz, 1025, plik);

/* masz wiersz zapisany do tablicy wiersz[], rób z nim co chcesz, bo przy następnej iteracji w tej tablicy będzie kolejny wiersz :-) */

}

 

 

fclose(plik);

}

 

Tak to działa w C, przy wykorzystaniu stdio.h

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...