Prog Opublikowano 10 Grudnia 2006 Zgłoś Opublikowano 10 Grudnia 2006 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MeHow Opublikowano 10 Grudnia 2006 Zgłoś Opublikowano 10 Grudnia 2006 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Prog Opublikowano 10 Grudnia 2006 Zgłoś Opublikowano 10 Grudnia 2006 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ziolek Opublikowano 10 Grudnia 2006 Zgłoś Opublikowano 10 Grudnia 2006 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 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...