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

С использованием текстовых файлов - C++

Восстановить пароль Регистрация
 
***Иришка***
0 / 0 / 0
Регистрация: 18.12.2009
Сообщений: 8
19.12.2009, 16:24     С использованием текстовых файлов #1
помогите первокурснице.....

Файл содержит целые числа. Вычислить сумму значений из файла, в двоичном
представлении которых K разрядов установлено в единицу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2009, 16:24     С использованием текстовых файлов
Посмотрите здесь:

Форматный ввод/вывод с использованием текстовых файлов. C++
Выполнить задание с использованием функций и текстовых файлов C++
C++ Конкатенация текстовых файлов
C++ C++ подключение текстовых файлов
Обработка текстовых файлов C++
Обработка текстовых файлов C++
C++ Перекодировка текстовых файлов
C++ Конкатенация текстовых файлов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
19.12.2009, 18:04     С использованием текстовых файлов #2
а первокурсница сама чего-нить сделала?
или тока на форум надёжа?

Не по теме:

хотя это наверно риторический вопрос

easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
19.12.2009, 19:10     С использованием текстовых файлов #3
Если особо не заморачиваться, то вот так:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
 
/* возвращает количество установленных бит */
size_t setBitsCount(int a){
    size_t count, i;
    static const int len = CHAR_BIT * sizeof(int);
    
    for ( count = 0, i = 0; i < len; ++i )
        if ( a & ( 1 << i ) )
            ++count;
    return count;
}
 
/* необходивое количество установленных бит */
#define K 4
 
/* читает из файла числа, сравнивает количество установленных бит, если совпадает с К, прибавляет их к sum. Печатает sum */
 
#define FIN_NAME "numbers.txt"
 
int main(void){
    FILE *fin;
    int num;
    long sum;
    
    if ( ( fin = fopen(FIN_NAME, "r") ) == NULL ){
        fprintf(stderr, "%Can't open input file %s\n", FIN_NAME);
        exit(1);
    }
    
    sum = 0;
    while ( fscanf(fin, "%d", &num) == 1 )
        if ( setBitsCount(num) == K )
            sum += (long)num;
            
    fclose(fin);
    printf("Sum = %ld\n", sum);
    exit(0);
}
numbers.txt
Код
4561
12
312
4566
232
655
56
659
6565
255
46
Yandex
Объявления
19.12.2009, 19:10     С использованием текстовых файлов
Ответ Создать тему
Опции темы

Текущее время: 23:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru