С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 11

Найти количество цифр в файле

14.12.2011, 03:33. Показов 2305. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте!
Помогите пожалуйста написать программу на С.
Найти количество цифр в файле. Файл загружаем из ранее созданных. (например 1.тхт).
Заранее огромное спасибо за помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.12.2011, 03:33
Ответы с готовыми решениями:

Найти в текстовом файле наибольшее количество цифр, идущих подряд
Найти в текстовом файле наибольшее количество цифр, идущих подряд.

Найти в файле количество цифр
здравствуйте мне оч нужна ваша помощь в решении одной задачи: в файле дан код программы 1-нужно найти в нем кол-во всех цифр 2-нужно...

В двоичном файле найти количество цифр
Рерят помогите никак непойму эти двоичные файлы , помогите с задачкой В двоичном файле найти количество цифр ?

5
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
14.12.2011, 04:10
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
 
char is_digit ( char x )
{
    return ( ( x >= '0' ) & ( x <= '9' ) );
}
 
int main()
{
    unsigned char *str = "this12 i321s a90 string";
    unsigned char t;
    int cnt = 0;
 
    while ( *str )
        cnt += is_digit( *str++ );
 
    printf("Hello world! %i\n", cnt);
    return 0;
}
+
fopen
NAME
fopen, fdopen, freopen - stream open functions

SYNOPSIS
#include <stdio.h>

FILE *fopen(const char *path, const char *mode);

FILE *fdopen(int fd, const char *mode);

FILE *freopen(const char *path, const char *mode, FILE *stream);

Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

fdopen(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE

DESCRIPTION
The fopen() function opens the file whose name is the string pointed to by path and associates a stream with
it.

The argument mode points to a string beginning with one of the following sequences (Additional characters may
follow these sequences.):

r Open text file for reading. The stream is positioned at the beginning of the file.

r+ Open for reading and writing. The stream is positioned at the beginning of the file.

w Truncate file to zero length or create text file for writing. The stream is positioned at the begin‐
ning of the file.

w+ Open for reading and writing. The file is created if it does not exist, otherwise it is truncated.
The stream is positioned at the beginning of the file.

a Open for appending (writing at end of file). The file is created if it does not exist. The stream is
positioned at the end of the file.

a+ Open for reading and appending (writing at end of file). The file is created if it does not exist.
The initial file position for reading is at the beginning of the file, but output is always appended to
the end of the file.

The mode string can also include the letter 'b' either as a last character or as a character between the char‐
acters in any of the two-character strings described above. This is strictly for compatibility with C89 and
has no effect; the 'b' is ignored on all POSIX conforming systems, including Linux. (Other systems may treat
text files and binary files differently, and adding the 'b' may be a good idea if you do I/O to a binary file
and expect that your program may be ported to non-Unix environments.)

See NOTES below for details of glibc extensions for mode.

Any created files will have mode S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH (0666), as modified
by the process's umask value (see umask(2)).

Reads and writes may be intermixed on read/write streams in any order. Note that ANSI C requires that a file
positioning function intervene between output and input, unless an input operation encounters end-of-file.
(If this condition is not met, then a read is allowed to return the result of writes other than the most
recent.) Therefore it is good practice (and indeed sometimes necessary under Linux) to put an fseek(3) or
fgetpos(3) operation between write and read operations on such a stream. This operation may be an apparent
no-op (as in fseek(..., 0L, SEEK_CUR) called for its synchronizing side effect.

Opening a file in append mode (a as the first character of mode) causes all subsequent write operations to
this stream to occur at end-of-file, as if preceded by an

fseek(stream,0,SEEK_END);

call.

The fdopen() function associates a stream with the existing file descriptor, fd. The mode of the stream (one
of the values "r", "r+", "w", "w+", "a", "a+") must be compatible with the mode of the file descriptor. The
file position indicator of the new stream is set to that belonging to fd, and the error and end-of-file indi‐
cators are cleared. Modes "w" or "w+" do not cause truncation of the file. The file descriptor is not
dup'ed, and will be closed when the stream created by fdopen() is closed. The result of applying fdopen() to
a shared memory object is undefined.

The freopen() function opens the file whose name is the string pointed to by path and associates the stream
pointed to by stream with it. The original stream (if it exists) is closed. The mode argument is used just
as in the fopen() function. The primary use of the freopen() function is to change the file associated with a
standard text stream (stderr, stdin, or stdout).

RETURN VALUE
Upon successful completion fopen(), fdopen() and freopen() return a FILE pointer. Otherwise, NULL is returned
and errno is set to indicate the error.

ERRORS
EINVAL The mode provided to fopen(), fdopen(), or freopen() was invalid.

The fopen(), fdopen() and freopen() functions may also fail and set errno for any of the errors specified for
the routine malloc(3).

The fopen() function may also fail and set errno for any of the errors specified for the routine open(2).

The fdopen() function may also fail and set errno for any of the errors specified for the routine fcntl(2).

The freopen() function may also fail and set errno for any of the errors specified for the routines open(2),
fclose(3) and fflush(3).
,
fclose
NAME
fclose - close a stream

SYNOPSIS
#include <stdio.h>

int fclose(FILE *fp);

DESCRIPTION
The fclose() function flushes the stream pointed to by fp (writing any buffered output data using fflush(3))
and closes the underlying file descriptor.

The behaviour of fclose() is undefined if the stream parameter is an illegal pointer, or is a descriptor
already passed to a previous invocation of fclose().

RETURN VALUE
Upon successful completion 0 is returned. Otherwise, EOF is returned and the global variable errno is set to
indicate the error. In either case any further access (including another call to fclose()) to the stream
results in undefined behavior.

ERRORS
EBADF The file descriptor underlying fp is not valid.

The fclose() function may also fail and set errno for any of the errors specified for the routines close(2),
write(2) or fflush(3).
,
fgets
NAME
fgetc, fgets, getc, getchar, gets, ungetc - input of characters and strings

SYNOPSIS
#include <stdio.h>

int fgetc(FILE *stream);

char *fgets(char *s, int size, FILE *stream);

int getc(FILE *stream);

int getchar(void);

char *gets(char *s);

int ungetc(int c, FILE *stream);

DESCRIPTION
fgetc() reads the next character from stream and returns it as an unsigned char cast to an int, or EOF on end
of file or error.

getc() is equivalent to fgetc() except that it may be implemented as a macro which evaluates stream more than
once.

getchar() is equivalent to getc(stdin).

gets() reads a line from stdin into the buffer pointed to by s until either a terminating newline or EOF,
which it replaces with '\0'. No check for buffer overrun is performed (see BUGS below).

fgets() reads in at most one less than size characters from stream and stores them into the buffer pointed to
by s. Reading stops after an EOF or a newline. If a newline is read, it is stored into the buffer. A '\0'
is stored after the last character in the buffer.

ungetc() pushes c back to stream, cast to unsigned char, where it is available for subsequent read operations.
Pushed-back characters will be returned in reverse order; only one pushback is guaranteed.

Calls to the functions described here can be mixed with each other and with calls to other input functions
from the stdio library for the same input stream.

For non-locking counterparts, see unlocked_stdio(3).

RETURN VALUE
fgetc(), getc() and getchar() return the character read as an unsigned char cast to an int or EOF on end of
file or error.

gets() and fgets() return s on success, and NULL on error or when end of file occurs while no characters have
been read.

ungetc() returns c on success, or EOF on error.
.
1
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 11
19.12.2011, 20:48  [ТС]
Спасибо за ответ!
только вот в строке бьет ошибку. error C2440: инициализация: невозможно преобразовать "const char [24]" в "unsigned char *"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
19.12.2011, 20:59
Тут небольшая ошибка (указатель ицициализируется константной строкой).
Исправленный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <string.h>
#include <conio.h>
char is_digit ( char x )
{
    return ( ( x >= '0' ) & ( x <= '9' ) );
}
 
int main()
{
    unsigned char str[] = "this12 i321s a90 string";
    unsigned char *pstr=str;
    int cnt = 0;
    while ( *pstr )
        cnt += is_digit( *(pstr++) );
 
    printf("Hello world! %i\n", cnt);
    _getch();
    return 0;
}
1
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 11
19.12.2011, 21:23  [ТС]
спасибо работает. Уще вопрос куда писать fopen для загрузки текста из файла?.
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
19.12.2011, 23:27
Цитата Сообщение от 376725710 Посмотреть сообщение
спасибо работает. Уще вопрос куда писать fopen для загрузки текста из файла?.
http://ddsh.ru/msu/c/main.htm#13

Добавлено через 3 минуты
Цитата Сообщение от zss2 Посмотреть сообщение
Тут небольшая ошибка (указатель ицициализируется константной строкой).
нету там ошибки. указатель не является константным, а значит его можно изменять, т.е. декремент\инкремент. В отличае от данных, т.е. содержания литерала.

Добавлено через 1 час 52 минуты
Цитата Сообщение от 376725710 Посмотреть сообщение
Спасибо за ответ!
только вот в строке бьет ошибку. error C2440: инициализация: невозможно преобразовать "const char [24]" в "unsigned char *"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
это вы просто плюсовым компилятором пытаетесь программу на Си скомпилировать, вот и ругается.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2011, 23:27
Помогаю со студенческими работами здесь

Найти количество цифр в файле целых чисел
хто может памоч з задачей. Дано файл f , компоненты которого являются целыми числами . Найти количество цифр в файле;

Найти наибольшее количество цифр идущих подряд в файле
Для строки сделал var cmax, c, i: integer; s: String; begin writeln('Введиту строку'); readln(s); cmax := 0;

Найти в файле все слова, в которых количество цифр максимально (через процедуру)
Дан текстовый файл f, каждая строка которого состоит из слов, разделённых одним и более пробелами. Найти все слова, в которых количество...

Подсчитать в текстовом файле количество слов и количество цифр
Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте?

Количество Цифр в файле
Здравствуйте, такая задача: Необходимо посчитать количество цифр в файле input.txt и вывести на консоль в формате 'цифр - количество её в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru