Czy ktoś może pokazać mi, jak uzyskać całkowitą liczbę linii w pliku tekstowym w języku programowania C?Pobieranie całkowitych numerów linii w pliku
Odpowiedz
To jedno podejście:
FILE* myfile = fopen("test.txt", "r");
int ch, number_of_lines = 0;
do
{
ch = fgetc(myfile);
if(ch == '\n')
number_of_lines++;
} while (ch != EOF);
// last line doesn't end with a new line!
// but there has to be a line at least before the last line
if(ch != '\n' && number_of_lines != 0)
number_of_lines++;
fclose(myfile);
printf("number of lines in test.txt = %d", number_of_lines);
Ta funkcja daje fałszywe wyniki, ponieważ pętla jest kończona na 'ch! = EOF', a następnie wartość' ch' jest testowana z 'ch! = '\ N'', która jest zawsze prawdziwa, ponieważ w tym momencie' ch 'równa się' EOF'. Funkcja niepoprawnie zwraca jeszcze jeden wiersz, jeśli plik kończy się znakiem '\ n'. Jeśli plik jest pusty lub jeśli nie kończy się na '\ n', funkcja zwraca oczekiwaną liczbę linii. Prawidłowe rozwiązanie sprawdzi ostatni znak przed 'EOF'. –
A "nie przez kierownika projektu" Rozwiązanie
system("wc profile.dat > no.lines");
FILE *pfile = fopen("no.lines", "r");
int lines;
fscanf(pfile, "%d", &lines);
system("rm no.lines");
To naprawdę nieproduktywna odpowiedź. Ponadto, wykopujesz pytanie z 2009 roku. –
Ta odpowiedź zakłada użycie określonego systemu operacyjnego. – Eran
- 1. Edycja numerów linii w Eclipse
- 2. Uzyskiwanie numerów linii VB.NET w stosie śledzenia
- 3. Dodawanie numerów linii do textarea
- 4. Komenda linux do wyszukiwania całkowitych numerów dysków i dysków twardych
- 5. Jak zwiększyć odstępy między marginesami numerów linii w vim?
- 6. sposób kopiowania przez podanie numerów linii w vi
- 7. Jaka jest nazwa schematu tła numerów linii w Vim?
- 8. Pobieranie pliku Ajax Problem
- 9. Pobieranie pliku binarnego
- 10. Pobieranie pliku zakończone oddzwonienie
- 11. Algorytm wykluczania numerów
- 12. Lista głównych numerów wersji formatu pliku Java?
- 13. Pobieranie nazwy pliku z pliku pobierania http
- 14. Pobieranie nazwy pliku Makefile z pliku Makefile
- 15. Pobieranie nazwy pliku dla ALAsset
- 16. Rozpocznij pobieranie pliku po odświeżeniu
- 17. Pobieranie pliku PHP nie działa?
- 18. Pobieranie danych z pliku XML
- 19. Pobieranie pliku "mobileconfig" z aplikacji
- 20. Pobieranie pliku z/res/raw
- 21. Pobieranie dużego pliku - iPhone SDK
- 22. Jak napisać liczb całkowitych do pliku
- 23. Pobieranie pliku z DataURL w JavaScript
- 24. Pobieranie pliku w Asp.Net MVC 2
- 25. Pobieranie pliku "Symulacja" w aplikacji internetowej HTML5
- 26. Pobieranie pliku z żądania http w java
- 27. Pobieranie/ustawianie właściciela pliku w C#
- 28. Pobieranie listy tabel w pliku MS Access
- 29. Jak wznowić pobieranie pliku w Pythonie?
- 30. Pobieranie pliku CSV zignorowano w ie8/9
Czy wydajność czynnikiem? Jak duże są pliki? –
twoje poprzednie pytanie mu nie pomogło? http://stackoverflow.com/questions/1910618/c-reading-a-text-file-into-array-line-by-line-and-print-them – lsalamon
będzie zawierać 3 miliony linii, każda linia składa się z trzech punkty zmiennoprzecinkowe oddzielone spacją, to plik Triangulated Irregular Network generowany z pliku LASAR LAS. – asel