Как посчитать количество строк в файле c
Перейти к содержимому

Как посчитать количество строк в файле c

  • автор:

Как посчитать количество строк в файле c

Короче сабж. Ничего стандартное по этому я не нашёл не в MFC C(Stdio)File, не в STL. Пришлось делать самому с перечётом всех строк:

Может есть варианты получше и не пользующие CRT. Я не против посмотреть

Кстати тема для RSDN Q&A (базовые сервисы->файлы. ) Там можно было и расписать лучшие варианты.

От: Lexey
Дата: 21.03.02 12:43
Оценка:

Здравствуйте Janis Baumanis, Вы писали:

JB>Может есть варианты получше и не пользующие CRT. Я не против посмотреть

Memory-mapped file + memchr. Искать лучше \r, а не \n, т.к. переводы строк разные бывают.
Мне писать влом.

JB>Кстати тема для RSDN Q&A (базовые сервисы->файлы. ) Там можно было и расписать лучшие варианты.

К базовым сервисам это, ИМХО, никаким боком не относится.

От: Кодт
Дата: 21.03.02 12:50
Оценка:

Здравствуйте Janis Baumanis, Вы писали:

JB>Короче сабж. Ничего стандартное по этому я не нашёл не в MFC C(Stdio)File, не в STL. Пришлось делать самому с перечётом всех строк:

Если файл большой, то имеет смысл читать его поблочно

JB>Может есть варианты получше и не пользующие CRT. Я не против посмотреть

Файл-маппинг позволит избежать чтения в new char[dwSize+1]
(но потребуется следить за концом памяти)

JB>Кстати тема для RSDN Q&A (базовые сервисы->файлы. ) Там можно было и расписать лучшие варианты.

Соберете подборку, напишете — будет здорово.

От: Рек
Дата: 21.03.02 13:03
Оценка: 5 (1)

Здравствуйте Janis Baumanis, Вы писали:

JB>Короче сабж. Ничего стандартное по этому я не нашёл не в MFC C(Stdio)File, не в STL. Пришлось делать самому с перечётом всех строк:

От: Алекс http://wise-orm.com
Дата: 22.03.02 07:24
Оценка:

Здравствуйте Janis Baumanis, Вы писали:

JB>Короче сабж. Ничего стандартное по этому я не нашёл не в MFC C(Stdio)File, не в STL. Пришлось делать самому с перечётом всех строк:

JB>

JB>Может есть варианты получше и не пользующие CRT. Я не против посмотреть

JB>Кстати тема для RSDN Q&A (базовые сервисы->файлы. ) Там можно было и расписать лучшие варианты.

Может проще так:

От: Kaa http://blog.meta.ua/users/kaa/
Дата: 22.03.02 16:32
Оценка:
От: The Lex
Дата: 23.03.02 13:55
Оценка:

Здравствуйте Janis Baumanis, Вы писали:

JB>Короче сабж. Ничего стандартное по этому я не нашёл не в MFC C(Stdio)File, не в STL.

ИМХО: посчитать в потоке количество символов перевода стоки. «Тормознутее», чем ежели бы читать большой кусок в память, а потом искать там? А разве ОС сама файл не буферизирует? А так получится очень даже «по-STL-ски» и очень даже «кроссплатформенно».

В общем я задачи «чтения и понимания» текстовых файлов решал и так и эдак — особых различий в скорости работы программ не замечал. В скорости разработки — это заметнее — бывает так проще, а бывает эдак.

Узнать количество строк в txt файле

Узнать количество строк в текстовом файле и записать количество в Label
Здравствуйте! Как знать количество строк в текстовом файле(.txt) и записать это количество в.

Как узнать количество строк в файле
как узнать количество строк в файле? допустим есть файл: 111 222 333 112 332 113 113 231 23.

Добавление записи в файл. Как узнать количество строк в файле
Как сделать так: Нажимаем на кнопку. Происходить запись в файл (str1+";"+str2) Еще раз нажимаем.

Опредлить количество строк в файле txt
Добрый день. возможно ли узнать количество строк в файле txt вот этим кодом? while not.

Подсчет количества строк в файле

Строки файла строк в языке С разделяются символом \n , поэтому программа ввода строк с клавиатуры и подсчета их количества будет выглядеть так, как показано в листинге 2.5.

using namespace System;

//признак конца файла

printf(«Enter your string and press <Enter> and <Ctrl + z> >\n»); while((c=getchar()) !=eof)

printf(«String’s number is: %d\n»,nl); _getch();

Здесь новое по сравнению с предыдущими подобными программами только то, что появилась операция == (равно) и новый оператор if — это оператор условного перехода, изменяющий последовательное (сверху вниз) выполнение операторов программы в зависимости от истинности/ложности условия (оно записывается в круглых скобках в заголовочной части оператора и может представлять собой выражение). Если условие истинно, то выполняется тело оператора, которое обладает точно такими же свойствами, что и тела операторов while и for : если в теле всего один оператор, то этот оператор может не заключаться в фигурные скобки, в противном случае фигурные скобки обязательны. В нашем случае тело состоит из од-

Часть I. Изучение языка С/С++

ного оператора nl++ , который выполняется всякий раз, когда введен не символ конца строки. В противном случае тело if не выполняется. Для простоты понимания мы ввели фигурные скобки там, где их можно опустить, выделяя тем самым тело оператора. Тело оператора while тоже состоит из одного оператора if (неважно, сколько операторов включает тело if ), поэтому оператор while записан без фигурных скобок.

Программа работает так: обнуляется счетчик количества вводимых строк ( nl ), начинает выполняться оператор цикла while , обеспечивающий ввод с клавиатуры потока символов (вычисляется, как обычно, выражение в заголовочной части while , чтобы проверить условие на истинность/ложность, что требует нового ввода символа). Среди потока символов встречаются символы \n , сигнализирующие об окончании строки: когда мы набираем строки в консольном окне, мы заканчиваем их ввод символом <Enter>. Как только такой символ обнаруживается с помощью оператора if , в счетчик nl , расположенный в теле if , добавляется единица. Когда после последней строки, завершающейся символом \n , мы нажмем комбинацию клавиш <Ctrl>+<z> (символ конца ввода), ввод строк завершится. Условие выполнения оператора while нарушится, и управление будет передано на оператор, следующий за его телом. Это будет оператор вывода printf() . Результат работы программы представлен на рис. 2.4.

Рис. 2.4. Результат работы программы листинга 2.5

Подсчет количества слов в файле

Договоримся, что слово — это любая последовательность символов, не содержащая пробелов, символов табуляции ( \t ) и новой строки ( \n ). Наряду с количеством слов программа будет подсчитывать количество символов и строк.

Узнать количество строк в текстовом файле

Как возможно узнать количество строк у текстового файла? Сейчас я узнаю так:

Но этот способ занимает много времени и забивает оперативную память, при загрузке текстовых файлов размером более 1 гигабайта, это не актуально.

Пример с буфером в 10 мегабайт.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.9.5.43611

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *