3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 99
|
||||||
1 | ||||||
Подсчитать количество символов в файле11.12.2011, 17:05. Показов 54641. Ответов 32
Метки нет (Все метки)
Функция while(f.eof()) насколько я помню обозначает сделать то то пока не будет конец файла. Я ввел счетчик ,что бы узнать сколько символов в файле. Который час пробую разные варианты. Подскажите функцию что бы определить количество символов.
0
|
11.12.2011, 17:05 | |
Ответы с готовыми решениями:
32
Подсчитать количество символов в файле Подсчитать количество символов в файле Подсчитать количество символов в файле Подсчитать количество символов в файле |
go
|
14.12.2011, 13:02
#24
|
0
|
Заблокирован
|
|
14.12.2011, 13:07 | 25 |
Код
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 в линукс Добавлено через 2 минуты
Сообщение от wiki{управляющие символы}
Сообщение от wiki{управляющие символы}
0
|
14.12.2011, 13:29 | 30 |
То есть других аргументов у Вас нет?
Виндовской перевод строки в Linux будет посчитан за два символа, а в Windows за один. Ясен пень, что никсовый перевод строки будет в никсах же за один символ считаться. В никсах вообще разницы между бинарными и текстовыми файлами нет. Потому и размер файла будет равен количеству символов в нем. В форточках разница есть. Не по теме: Тред не читай @ Сразу отвечай. Добавлено через 7 минут Прикладываю к своим словам гневный пример убеждений Код
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 У кого винда есть, проверьте сколько символов насчитает в идентичном по hex-dump файле?
0
|
Заблокирован
|
|
14.12.2011, 13:42 | 31 |
вендовый файел в юниксе... дык ясно что. Это и означает strlen() - {2, 1}. Вы же не уточнили что говорите про случай чтения вендузного файла в юниксе. Отсюда и непонятка. А это что за такой суржик? "abcd\x0D\x0Aabcd\n" полуюникс - полувиндуз.
Добавлено через 2 минуты либо вы меня за выскочку держите, либо просто непонимаете, либо неясно выражаетесь. Я об этом уже неоднажды в топике сказал. Про разные управляющие символы.
0
|
CEO
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
|
|
14.12.2011, 14:34 | 32 |
fasked, с вычетом пробела который пришлось добавить после \x0A (ато воспринимало как нелегитимный символ) в Windows Seven Enterprise x64 - 11 символов
1
|
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 1
|
|
11.05.2019, 15:17 | 33 |
Функция для подсчета символов в строке это:
strlen(имя_переменной);
0
|
11.05.2019, 15:17 | |
11.05.2019, 15:17 | |
Помогаю со студенческими работами здесь
33
В текстовом файле подсчитать количество символов и строк Подсчитать количество символов в последнем слове в файле Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. В последовательности символов подсчитать количество букв и количество цифр Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |