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

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

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

Ввод-вывод файлов - C++

24.05.2013, 00:56. Просмотров 516. Ответов 11
Метки нет (Все метки)

подскажите код программы, которая считывает числа из файла и выводит эти же числа в другой файл в обратном порядке
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2013, 00:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод-вывод файлов (C++):

Ввод/вывод двоичных файлов - C++
Нужно чтоб первый создаваемый файл был двоичным и данные в нем в двоичном режиме Вот мой код #include <iostream> #include <fstream> ...

Потоковый ввод / вывод файлов - C++
Помогите пожайлуйста исправить ошибки в коде. В функции OemToChar пишет "char*" не совместим с параметром "LPWSTR" #include "stdafx.h" ...

Ввод/вывод чисел из файлов - C++
1) Дан файл input.in с 2 числами, разделенными пробелом. Какой самый легкий и быстрый способ записать эти числа в переменные a и b соотв. ...

Форматный ввод/вывод с использованием текстовых файлов. - C++
ЗДРАВСТВУЙТЕ. МЕНЯ ЗОВУТ ДАША. У МЕНЯ ПРОБЛЕМА, Я НЕ ЧЕГО НЕ ПОНИМАЮ В С++, А У МЕНЯ ЗАЧЕТ, МОЖЕТ КТО ТО МНЕ СМОЖЕТ СДЕЛАТЬ МОЁ ЗАДАНИЕ: ...

Файловый ввод/вывод. Какие форматы файлов можно читать в файловых потоках? - C++
Заранее простите за тупой вопрос, но какие форматы файлов можно считать с помощью #include <iostream> #include <fstream> #include...

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

11
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
24.05.2013, 01:52 #2
Если запись фиксированного размера, достаточно читать файл с конца. В противном случае, придется организовать промежуточное хранение либо в массиве, либо в файле.
0
mavcycyan
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
24.05.2013, 17:18  [ТС] #3
я создал файл ("1.txt"), в него в столбик ввел числа.
как считать эти числа из файла, я понял, но в новый файл эти числа не выводит (
хотелось бы узнать ,что нужно исправить в этом коде, чтобы выполнялся вывод чисел в новый файл

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
    ifstream fin;
    fin.open ("1.txt");
    string s;
    while (getline (fin, s))
        cout << s << '\n';
 
    ofstream fout ("txt.txt");
    fout << s ;
 
    fin.close();
    fout.close();
    getch();
    return 0;
   }
0
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
24.05.2013, 18:14 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main(int argc,char** argv)
{              
   ifstream    In;
   ofstream    Out;
 
   In.open("1.txt");
   Out.open("txt.txt");
 
   char  pszStr[MAX_PATH + 1];
 
   while (In.getline(pszStr,MAX_PATH))
   {
      Out << pszStr << '\n';
   }
 
   In.close();
   Out.close();
 
   getch();
 
   return 0;
}
P.S.

Если собираетесь читать файл с конца, то потоковый ввод вам не подойдет.
1
mavcycyan
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
24.05.2013, 20:59  [ТС] #5
спасибо, код работает)
а что нужно для того, чтобы считать файл с конца? (числа записать в новом файле в обратном порядке)
0
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
24.05.2013, 21:45 #6
Если записей немного (все могут быть размещены в памяти), то можно просто использовать (динамический) массив. На первом шаге считывать все из файла в массив, на втором - записывать из массива в файл. Если записей много (в памяти не помещаются), то ставим указатель в файле на последнюю запись, считываем, записываем как первую.
Передвигаем указатель на предпоследнюю, считываем, записываем как вторую. И т.д. Если все записи одного фиксированного размера, это так же просто, как с массивом. Если нет - необходимо знать (или вычислять) положение и размер для каждой записи.
1
mavcycyan
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
24.05.2013, 23:20  [ТС] #7
спасибо за советы, буду пробовать =)
0
mavcycyan
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
26.05.2013, 13:13  [ТС] #8
попробовал воспользоваться функцией swap для разворота массива...
программа компилируется, но в новый файл ничего не выводит (

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
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <fstream.h>
#include <cstring.h>
#include <algorithm>
 
 
int main()
{
 
 
   ifstream    fin;
   ofstream    fout;
 
   fin.open("1.txt");
   fout.open("txt.txt");
 
    cout << "Writing to the file 'txt.txt'... " ;
 
   char  s[80];
 
   while (fin.getline(s,80)) 
 
 
        for (int i  = 0; i < 80 / 2; i++)
         std::swap(s[i], s[80 - i - 1]);
 
 
for (int i  = 0; i < 80; i++)
   {
      fout << s << '\n';
   }
 
   fin.close();
   fout.close();
 
    cout << "Press any button" ;
 
   getch();
 
   return 0;
}
0
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
26.05.2013, 13:55 #9
Зачем еще какие-то функции? Просто считывайте массив в обратном порядке.
1
mavcycyan
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
26.05.2013, 14:13  [ТС] #10
а как это нужно сделать?
0
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
26.05.2013, 14:47 #11
Вы серьезно? Вас в детстве обратному счету не учили?

C++
1
2
3
4
for (int ii = (N - 1); ii >= 0; --ii)
{
   // do smth
}
1
mavcycyan
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
26.05.2013, 17:12  [ТС] #12
учили, но если бы я знал, как применить это в с++ ,не задавал бы столько бесполезных вопросов )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2013, 17:12
Привет! Вот еще темы с ответами:

Заменить в программе, переводящую строку в двоичный код, консольный ввод/вывод на файловый ввод/вывод - C++
Добрый день! Помогите, пожалуйста, с программой. Программа считывает строку с клавиатуры и переводит её в двоичный код. затем наоборот...

Поменять консольный ввод-вывод на файловый ввод-вывод - C++
вот у меня калькулятор как мне сделать что б числа вводились из файла и результат записывался в новый файл ? // ОБРАТНАЯ...

Запись выражений, ввод–вывод информацииЗапись выражений, ввод–вывод информации - C++
Задача 2.1. Пользуясь только операцией умножения, вычислить (A в 7-ой степени) за четыре операции. Задача 2.2. Очистить экран,...

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур - C++
Добрый вечер)) У меня небольшой вопрос. Почему первые буквы (в названии книг) не выводит на экран? Само задание: О каждой книге ...


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

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

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