Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 87, средняя оценка - 4.68
Novij
3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 99
#1

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

11.12.2011, 17:05. Просмотров 12686. Ответов 31
Метки нет (Все метки)

Функция 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2011, 17:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчитать количество символов в файле (C++):

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

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

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

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

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

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

31
prazuber
110 / 110 / 3
Регистрация: 29.04.2010
Сообщений: 240
11.12.2011, 18:22 #2
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
int _tmain(int argc, _TCHAR* argv[])
{
        char a[10];
        int count = 0;
        ifstream f("siz.txt");
        if(!f)
        {
                cout<<"can't open file \n";
        }
        else
        {
                cout<<"open file\n";
                while(!f.eof())
                {
                        char ch;
                        f>>ch;
                        count++        
                };
                cout<<count;
        }
 
        system("PAUSE");
        return 0;
}
2
DeadRipper
11.12.2011, 20:52
  #3

Не по теме:

Novij, надеюсь ты на деле так считать не собираешься? GetFileSize() из WinApi намного быстрее

1
Novij
3 / 3 / 0
Регистрация: 12.12.2010
Сообщений: 99
14.12.2011, 10:15  [ТС] #4
Хм GetFileSize() не знаком, необходимо подчитать материал))))
0
Байт
Эксперт C
16144 / 10422 / 1552
Регистрация: 24.12.2010
Сообщений: 19,730
14.12.2011, 10:24 #5
Цитата Сообщение от DeadRipper Посмотреть сообщение

Не по теме:

Novij, надеюсь ты на деле так считать не собираешься? GetFileSize() из WinApi намного быстрее

В чистом Си есть еще filelegth.
Но оба они конец-перевод строки (0A 0D) считают за 2 символа.
0
alkagolik
Заблокирован
14.12.2011, 10:34 #6
Цитата Сообщение от Байт Посмотреть сообщение
В чистом Си есть еще filelegth.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
deadman@desktop:~$ man filelegth
Нет справочной страницы для filelegth
deadman@desktop:~$ man filelength
Нет справочной страницы для filelength
deadman@desktop:~$ find /usr/include -name io.h
/usr/include/wine/msvcrt/io.h
/usr/include/sys/io.h
deadman@desktop:~$ cat /usr/include/sys/io.h | grep filelength
deadman@desktop:~$ cat /usr/include/sys/io.h | grep filelegth
deadman@desktop:~$ cat /usr/include/wine/msvcrt/io.h | grep filelegth
deadman@desktop:~$ cat /usr/include/wine/msvcrt/io.h | grep filelength
__int64     __cdecl _filelengthi64(int);
__msvcrt_long __cdecl _filelength(int);
static inline __msvcrt_long filelength(int fd) { return _filelength(fd); }
deadman@desktop:~$
1
Байт
Эксперт C
16144 / 10422 / 1552
Регистрация: 24.12.2010
Сообщений: 19,730
14.12.2011, 11:30 #7
alkagolik, прошу прощения. Буковку пропустил. filelength

Добавлено через 1 минуту
Что вы совершенно справедливо отметили
0
alkagolik
Заблокирован
14.12.2011, 11:32 #8
Байт, это ерунда, я к тому что функция не Сишная, а вроде как DOS
0
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.12.2011, 11:34 #9
Цитата Сообщение от PraZuBeR Посмотреть сообщение
C++
1
2
3
4
5
6
while(!f.eof()) 
{ 
   char ch; 
   f>>ch; 
   count++ 
};
такое чтение из файла может плохо кончится
C++
1
2
3
char ch;
while (f >> ch)
    ++count;
1
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.12.2011, 12:00 #10
А вот так
C
1
2
3
4
5
6
 
FILE * pFile;
long size;
 
fseek (pFile, 0, SEEK_END);
size = ftell (pFile);
Добавлено через 1 минуту
Только это для бинарных
0
Thinker
14.12.2011, 12:22
  #11

Не по теме:

go, а символы '\n' будут один за два считаться? А если их вообще учитывать не надо.

0
alkagolik
Заблокирован
14.12.2011, 12:25 #12
Thinker, нет. Символов как таковых нету, есть их коды.
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.12.2011, 12:27 #13
Цитата Сообщение от alkagolik Посмотреть сообщение
Thinker, нет. Символов как таковых нету, есть их коды.
Это понятно. Вопрос как мы его учитывать будем или не будем. Тем более '\n' состоит из двух управляющих символов.
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
14.12.2011, 12:27 #14
Главное вовремя уловить разницу между размером файла в байтах и длиной текстового файла (количество печатных символов).
0
alkagolik
Заблокирован
14.12.2011, 12:28 #15
конечно будем. Учитывать как sizeof(char)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2011, 12:28
Привет! Вот еще темы с ответами:

Подсчитать количество чисел в файле - C++
Есть текстовый файл с числами (.txt). Необходимо подсчитать сколько в нем чисел. Написал программу, однако не работает, не могу найти...

Подсчитать количество гласных в файле - C++
Дан текстовый файл из латинских букв. Написать функцию, которая под-считывает общее количество гласных букв и количество каждой гласной в...

Подсчитать количество пробелов в файле - C++
Всем приветик. Есть прога, которая вводит студентов, сохраняет их в файл и выводит на экран. Помогите пожалуйста подсчитать колитество...

c++ как подсчитать количество записей в файле - C++
Есть файл, в нем хранится определенное количество структур размером sizeof(Student), необходимо подсчитать их количество. Пробовал вот так,...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
14.12.2011, 12:28
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru