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

Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
колянч
4 / 4 / 0
Регистрация: 09.05.2010
Сообщений: 15
09.05.2010, 22:55     Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке #1
Пожалуйста, помогите решить задачу в C++!!!
Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2010, 22:55     Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке
Посмотрите здесь:

C++ Дан файл, компонентами которого являются символы. Переписать все символы в новый файл в обратном порядке.
C++ Дан файл целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла.
Создать новый файл, содержащий элементы исходного файла в обратном порядке C++
Дан файл целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла C++
Создать файл целых чисел, содержащий номера всех локальных максимумов исходного файла в порядке возрастания C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
09.05.2010, 23:18     Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке #2
Так пойдет?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <algorithm>
#include <iterator>
#include <iostream>
#include <fstream>
#include <vector>
 
int main(){
 
    std::ifstream ifile("ifile.txt");
    std::ofstream ofile("ofile.txt");
    std::vector<int> vec; 
 
    std::copy(std::istream_iterator<int>(ifile), std::istream_iterator<int>(), std::back_inserter(vec));
    std::copy(vec.rbegin(), vec.rend(), std::ostream_iterator<int>(ofile, " "));
 
    ifile.close();
    ofile.close();
 
    return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
09.05.2010, 23:22     Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке #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
42
43
44
45
#include <iostream>
#include <fstream>
#include <stack>
#include <algorithm>
#include <iterator>
 
/*  Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, 
    но в обратном порядке */
 
int main(){
    std::ifstream ifs("num.txt");
    if ( ! ifs.is_open() ){
        std::cerr << "Can't open input file!" << std::endl;
        return 1;
    }
    
    std::stack<int> st;
    int num;
    while ( ifs >> num )
        st.push(num);
    
    if ( ifs.bad() ){
        std::cerr << "Can't read from input file!" << std::endl;
        return 1;
    }
    ifs.close();
    
    std::ofstream ofs("reverse_num.txt");
    if ( ! ofs.is_open() ){
        std::cerr << "Can't open output file!" << std::endl;
        return 1;
    }
    while ( ! st.empty() ){
        ofs << st.top() << std::endl;
        if ( ofs.bad() ){
            std::cerr << "Can't write to output file!" << std::endl;
            return 1;
        }
        st.pop();
    }
    ofs.close();
    std::cout << "Done." << std::endl;
    
    return 0;
}
колянч
4 / 4 / 0
Регистрация: 09.05.2010
Сообщений: 15
10.05.2010, 11:01  [ТС]     Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке #4
Огромное Вам спасибо, мне следовало заранее уточнить, что писать нужно в Turbo C++ ...и, кажись, в обратном порядке числа нужно писать, используя цикл!

Добавлено через 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
25
26
27
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
void main()
{
 clrscr();
 FILE *f,*f2;
 f=fopen("out2.txt","rt");
 f2=fopen("output.txt","w+t");
 if(f==NULL) cout<<"Oshibka!!";
// if(f2==NULL) cout<<"Oshibka!!";
 int t,x,i,n;
 cout<<"chisla iz faila:"<<endl;
 while(!feof(f))
 {
 t=fscanf(f,"%d",&x);
 fprintf(f2,"%d\n",x);
 cout<<x<<" ";
 }
 cout<<endl;
 cout<<"chisla iz sozdanogo faila:"<<endl;
 i=fscanf(f2,"%d",&x);
 cout<<x<<endl;
 fcloseall();
 getch();
 }
помогите сделать правильно!!!

Добавлено через 11 минут
Пожалуйста!

Добавлено через 2 минуты
после 22-й строки по-моему должен быть цикл.
Yandex
Объявления
10.05.2010, 11:01     Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке
Ответ Создать тему
Опции темы

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