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

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

Войти
Регистрация
Восстановить пароль
 
376725710
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 11
#1

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

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

Здраствуйте!
Помогите пожалуйста написать программу на С.
Найти количество цифр в файле. Файл загружаем из ранее созданных. (например 1.тхт).
Заранее огромное спасибо за помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2011, 03:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти количество цифр в файле (C++):

дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!! - C++
дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!!...

Подсчитать количество цифр в тексте, записанного в файле. - C++
Необходимо подсчитать количество цифр в тексте. Текст записан в файле. Результат вывести на экран и в файл. Добавлено через 40 минут ...

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

В файле с целыми числами найти количество парных, количество удвоенных нечетных, количество квадратов нечетных - C++
Задано файл, компонентами которого являются целые числа. Найти: a) количество парных среди компонент файла; b) количество...

В файле найти слова состоящие только из цифр - C++
Дан текстовый файл. Написать функцию, которая проверяет, есть ли в нем слова, состоящие только из цифр, если есть – удалить их.

Написать функцию без параметров, которая подсчитывает количество цифр в тексте, заданном в текстовом файле (за текстом следует точка) - C++
Добрый вечер!Не понимаю в чем ошибка допилите пожалуйста. #include "stdafx.h" #include <stdio.h> #include <ctype.h> #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alkagolik
Заблокирован
14.12.2011, 04:10 #2
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.
.
376725710
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 11
19.12.2011, 20:48  [ТС] #3
Спасибо за ответ!
только вот в строке бьет ошибку. error C2440: инициализация: невозможно преобразовать "const char [24]" в "unsigned char *"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
zss
Модератор
Эксперт С++
6358 / 5922 / 1919
Регистрация: 18.12.2011
Сообщений: 15,218
Завершенные тесты: 1
19.12.2011, 20:59 #4
Тут небольшая ошибка (указатель ицициализируется константной строкой).
Исправленный вариант:
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;
}
376725710
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 11
19.12.2011, 21:23  [ТС] #5
спасибо работает. Уще вопрос куда писать fopen для загрузки текста из файла?.
alkagolik
Заблокирован
19.12.2011, 23:27 #6
Цитата Сообщение от 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, приведение в стиле С или приведение в стиле функции
это вы просто плюсовым компилятором пытаетесь программу на Си скомпилировать, вот и ругается.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2011, 23:27
Привет! Вот еще темы с ответами:

Найти сумму делитей. Подсчитать сумму цифр числа. Количество цифр - C++
Друзья,подскажите пожалуйста где ошибка?Цикл не считает сумму делителей числа. #include &lt;iostream&gt; using namespace std; void...

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

Найти количество символов в файле - C++
как найти количество символов в файле?без пробелов,табуляций и проч

Найти количество букв в файле - C++
Привет всем программистам.У меня проблема с решением задачи,прошу вашей помощи.Дана задача: Дан файл one.txt,содержащий текст.Написать...


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

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

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