Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
1

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

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

Author24 — интернет-сервис помощи студентам
подскажите код программы, которая считывает числа из файла и выводит эти же числа в другой файл в обратном порядке
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2013, 00:56
Ответы с готовыми решениями:

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

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

Ввод/вывод двоичных файлов
Нужно чтоб первый создаваемый файл был двоичным и данные в нем в двоичном режиме Вот мой код...

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

11
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
24.05.2013, 01:52 2
Если запись фиксированного размера, достаточно читать файл с конца. В противном случае, придется организовать промежуточное хранение либо в массиве, либо в файле.
0
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
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 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
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
24.05.2013, 20:59  [ТС] 5
спасибо, код работает)
а что нужно для того, чтобы считать файл с конца? (числа записать в новом файле в обратном порядке)
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
24.05.2013, 21:45 6
Если записей немного (все могут быть размещены в памяти), то можно просто использовать (динамический) массив. На первом шаге считывать все из файла в массив, на втором - записывать из массива в файл. Если записей много (в памяти не помещаются), то ставим указатель в файле на последнюю запись, считываем, записываем как первую.
Передвигаем указатель на предпоследнюю, считываем, записываем как вторую. И т.д. Если все записи одного фиксированного размера, это так же просто, как с массивом. Если нет - необходимо знать (или вычислять) положение и размер для каждой записи.
1
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
24.05.2013, 23:20  [ТС] 7
спасибо за советы, буду пробовать =)
0
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
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
26.05.2013, 13:55 9
Зачем еще какие-то функции? Просто считывайте массив в обратном порядке.
1
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
26.05.2013, 14:13  [ТС] 10
а как это нужно сделать?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
26.05.2013, 14:47 11
Вы серьезно? Вас в детстве обратному счету не учили?

C++
1
2
3
4
for (int ii = (N - 1); ii >= 0; --ii)
{
   // do smth
}
1
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 8
26.05.2013, 17:12  [ТС] 12
учили, но если бы я знал, как применить это в с++ ,не задавал бы столько бесполезных вопросов )
0
26.05.2013, 17:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2013, 17:12
Помогаю со студенческими работами здесь

Работа со строками, ввод с файла и вывод в несколько файлов
Здравствуйте, не знаю как решить задачу, прошу помочь:scratch: В общем есть несколько строк,...

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru