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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
MrRockchip
3 / 3 / 0
Регистрация: 30.05.2009
Сообщений: 27
#1

Дан файл f, компоненты которого являются целыми числами - C++

30.05.2009, 15:03. Просмотров 2344. Ответов 4
Метки нет (Все метки)

Дан файл f, компоненты которого являются целыми числами.
Получить в файле g все компоненты файла f, являющимися четными числами.

Я пробовал решить данную задачу, для начала :
юзер вводит число, оно записывается в файл f и оттуда копируется в файл g.
Мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
 
using namespace std;
int main()
{
FILE *in,*out;
in=fopen("f","r+");
out=fopen("g","r+");
int i,j;
cout << "Enter number : " ;
cin >> i;
fputc(i,in);
j=fgetc(in);
if ((j%2)==0) fputc(j,out);
cin >> i;
return 0;
}
Выдаёт мне ошибку - str!=Null
Никак не могу её исправить.
А так бы я давно уже сам справился.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2009, 15:03     Дан файл f, компоненты которого являются целыми числами
Посмотрите здесь:
C++ Дан файл f, компоненты которого являются целыми числами. Найти:
C++ Дан файл F, компоненты которого являются целыми числами. Найти наибольшее значение
Дан файл f, компоненты которого являются целыми числами. Получить файл g, образованный из файла f исключением повторных вхождений одного и того же чис C++
C++ [Проверить программу] Дан файл, компоненты которого являются действительными числами. Найти произведение компонент файлов
C++ 1.Дан файл, компоненты которого являются действительными числами. Найти разность первой и последней компонент файла
Дан файл, компоненты которого являются действительными числами. Найти наименьшее из значений компонент с четными номерами. C++
Есть файл f, c целыми числами. Создать новый файл g где все компоненты файла f в квадрате. C++
C++ В данном бинарном файле, компоненты которого являются действительными числами, найти min и max
C++ Дан файл, компонентами которого являются символы. Переписать все символы в новый файл в обратном порядке.
Дан файл f, компоненты которого - целые числа. Найти количество нечетных чисел среди компонент C++
C++ Дан файл с действительными числами. Получить в новом файле компоненты исходного файла в обратном порядке.
Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие в файл F. Числа в файле G должны следовать C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
30.05.2009, 15:12     Дан файл f, компоненты которого являются целыми числами #2
C++
1
2
in=fopen("f","w");
out=fopen("g","w");
MrRockchip
3 / 3 / 0
Регистрация: 30.05.2009
Сообщений: 27
30.05.2009, 15:49  [ТС]     Дан файл f, компоненты которого являются целыми числами #3
Спасибо ! Но возникла ошибка. Должно было получится
два одинаковых файла с одним и тем же числом.
Я ввёл "1".
Но на выходе: в файле f - большой пробел и буква H,
а файл g - вообще пустой.
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
30.05.2009, 16:14     Дан файл f, компоненты которого являются целыми числами #4
Функция fputc не число, а символ который соответствует ему в ASCII. А чтобы читать из записанного файла, придется открывать его еще раз уже для чтения...
Выглядит примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ofstream in, out;
    ifstream tmp;
    in.open("C:\\f.txt");
    out.open("C:\\g.txt");
    int i;
    cin >> i;
    in << i;
    in.close();
    tmp.open("C:\\f.txt");
    tmp >> i;
    if ((i%2)==0) out << i;
}
SONNY
8 / 8 / 0
Регистрация: 30.05.2009
Сообщений: 47
30.05.2009, 17:30     Дан файл f, компоненты которого являются целыми числами #5
Можно так попробовать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
 
template<typename InIt, typename OutIt, typename Fn>
void copy_if( InIt _First, InIt _End, OutIt _Dest, Fn Funct )
{
    for( ; _First != _End; ++_First )
        if( Funct( *_First ) )
            *_Dest = *_First;
}
 
int main()
{
    ifstream file_in( "1.txt", ios_base::in );
    vector<int> coll( (istream_iterator<int>( file_in )), (istream_iterator<int>()) );
    ofstream file_out( "2.txt", ios_base::out );
    copy_if( coll.begin(), coll.end(), ostream_iterator<int>( file_out, " " ), not1( bind2nd( modulus<int>(), 2 ) ) );  
}
Yandex
Объявления
30.05.2009, 17:30     Дан файл f, компоненты которого являются целыми числами
Ответ Создать тему
Опции темы

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