Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/293: Рейтинг темы: голосов - 293, средняя оценка - 4.97
3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 99

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

11.12.2011, 17:05. Показов 56835. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Функция while(f.eof()) насколько я помню обозначает сделать то то пока не будет конец файла. Я ввел счетчик ,что бы узнать сколько символов в файле. Который час пробую разные варианты. Подскажите функцию что бы определить количество символов.



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int _tmain(int argc, _TCHAR* argv[])
{
    char a[10];
    int k=0;
    ifstream f("siz.txt");
    if(!f)
    {
        cout<<"can't open file \n";
    }
    else
    {
        cout<<"open file\n";
        while(!f.eof())
        {
            int k=0;
            for(int i=0;i<10;i++)
                k=i;
                
        };
        cout<<k;
    }
 
 
    system("PAUSE");
    return 0;
}
вопрос почему считает что в тестовом документе 0 символов?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2011, 17:05
Ответы с готовыми решениями:

Подсчитать количество символов в файле
Есть программа которая выводит содержимое файла, помогите доработать так, чтобы вместе с содержимым выводилась количество символов в нем. ...

Подсчитать количество символов в файле
Подсчитать количество символов в файле. Символы с кодами ≤ 32, управляющие и пробелы не считать. Результат вывести на экран. ...

Подсчитать количество символов в файле
Напишите программу, которая считывает построчно содержимое текстового файла и подсчитывает количество символов в нем.

32
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.12.2011, 12:45
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от go Посмотреть сообщение

Не по теме:


Ведь тоже символ '\n' за два символа посчитаем

Не по теме:

Почему? за 1 символ

0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
14.12.2011, 12:48
угу 5 букв

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
Ведь тоже символ '\n' за два символа посчитаем
это еще почему?
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
14.12.2011, 12:54
В Linux за два, в Windows за один.
1
go
14.12.2011, 13:02

Не по теме:

Цитата Сообщение от alkagolik Посмотреть сообщение
это еще почему?
Странно это все...

Цитата Сообщение от Thinker Посмотреть сообщение
Правда?
Не знаю

0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
14.12.2011, 13:07
Цитата Сообщение от fasked Посмотреть сообщение
В Linux за два, в Windows за один
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
deadman@desktop:~$ cat > file.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
 
main(void)
{
    FILE * fp;
    char * line = NULL;
    int cnt = 0;
    size_t len = 0;
    ssize_t read;
 
    fp = fopen("/home/deadman/file.txt", "r");
    if (fp == NULL)
        exit(EXIT_FAILURE);
 
    while ((read = getline(&line, &len, fp)) != -1)
    {
        printf("%s", line);
        cnt += strlen(line) - 1;
    }
    printf("%i\n", cnt);
 
    if (line)
        free(line);
    exit(EXIT_SUCCESS);
}deadman@desktop:~$ gcc file.c 
deadman@desktop:~$ ./a.out 
123456
123456
123456
123456
24
Добавлено через 1 минуту
как видно за 1 в линукс

Добавлено через 2 минуты
Цитата Сообщение от wiki{управляющие символы}
В CP/M, MS-DOS и Microsoft Windows для разделения строк в текстовых файлах используется сочетание символов \r\n.
Цитата Сообщение от wiki{управляющие символы}
Перемещает позицию печати на одну строку вниз. В текстовых файлах в Unix разделяет строки.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
14.12.2011, 13:10
Цитата Сообщение от alkagolik Посмотреть сообщение
как видно за 1 в линукс
HEX dump файла /home/deadman/file.txt в студию.
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
14.12.2011, 13:15
0000000 3231 3433 3635 310a 3332 3534 0a36 3231
0000010 3433 3635 310a 3332 3534 0a36
000001c
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
14.12.2011, 13:16
alkagolik, ой что-то не вижу я здесь виндовского перевода строки, который из двух байт состоит. Вижу только юниксовый 0x0A.
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
14.12.2011, 13:19
fasked, я уже и не помню как венда выглядит... Вы видимо оговорились.
Цитата Сообщение от fasked Посмотреть сообщение
В Linux за два, в Windows за один.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
14.12.2011, 13:29
Цитата Сообщение от alkagolik Посмотреть сообщение
Вы видимо оговорились.
То есть других аргументов у Вас нет?
Виндовской перевод строки в Linux будет посчитан за два символа, а в Windows за один. Ясен пень, что никсовый перевод строки будет в никсах же за один символ считаться. В никсах вообще разницы между бинарными и текстовыми файлами нет. Потому и размер файла будет равен количеству символов в нем. В форточках разница есть.

Не по теме:

Тред не читай @ Сразу отвечай.



Добавлено через 7 минут
Прикладываю к своим словам гневный пример убеждений
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
fasked@nexus:/tmp$ printf "abcd\x0D\x0Aabcd\n" >> file
fasked@nexus:/tmp$ cat file
abcd
abcd
fasked@nexus:/tmp$ wc -m file
11 file
fasked@nexus:/tmp$ hd file
00000000  61 62 63 64 0d 0a 61 62  63 64 0a                 |abcd..abcd.|
0000000b
fasked@nexus:/tmp$ cat a.c
#include <stdio.h>
 
int main() {
   int count = 0;
   while (fgetc(stdin) != EOF)
      ++count;
 
   printf("%d\n", count);
   return 0;
}
fasked@nexus:/tmp$ gcc a.c
fasked@nexus:/tmp$ ./a.out < file
11
В котором я визуально вижу только два перевода строки, но тем не менее символов что wc что собственный велосипед насчитывают 11 штук.

У кого винда есть, проверьте сколько символов насчитает в идентичном по hex-dump файле?
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
14.12.2011, 13:42
вендовый файел в юниксе... дык ясно что. Это и означает strlen() - {2, 1}. Вы же не уточнили что говорите про случай чтения вендузного файла в юниксе. Отсюда и непонятка. А это что за такой суржик? "abcd\x0D\x0Aabcd\n" полуюникс - полувиндуз.

Добавлено через 2 минуты
Цитата Сообщение от fasked Посмотреть сообщение
В котором я визуально вижу только два перевода строки
Цитата Сообщение от alkagolik Посмотреть сообщение
В CP/M, MS-DOS и Microsoft Windows для разделения строк в текстовых файлах используется сочетание символов \r\n.
Цитата Сообщение от fasked Посмотреть сообщение
Тред не читай @ Сразу отвечай.

либо вы меня за выскочку держите, либо просто непонимаете, либо неясно выражаетесь. Я об этом уже неоднажды в топике сказал. Про разные управляющие символы.
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
14.12.2011, 14:34
fasked, с вычетом пробела который пришлось добавить после \x0A (ато воспринимало как нелегитимный символ) в Windows Seven Enterprise x64 - 11 символов
1
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 1
11.05.2019, 15:17
Функция для подсчета символов в строке это:
strlen(имя_переменной);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.05.2019, 15:17

Подсчитать количество символов в файле
Здравствуйте, Имеется такая задачка : 1)Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию Выполнить...

В текстовом файле подсчитать количество символов и строк
Ребята! Помогите разобраться с файлами нужно - в текстовом файле. Подсчитать количество символов и строк в нём. Объясните как...

Подсчитать количество символов в последнем слове в файле
1) Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию 2) Скопировать из файла F1 в файл F2 строки,...

Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б.
Ребят , помогите плиз , послезавтра экзамен , вот нашел возможные задание , может кто подсказать , или показать решения ? Язык : С++/...

В последовательности символов подсчитать количество букв и количество цифр
Всем Добрый Вечер!!!Помогите пожалуйста тупенькому =), очень надо. Заранее спс... 1. В последовательности символов подсчитать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru