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

Как из файла записать данные в другой файл? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 38, средняя оценка - 4.87
Needler
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 7
13.04.2010, 18:27     Как из файла записать данные в другой файл? #1
странная задача, но все же надо открыть файл,
прочитать и переписать их в другой файл посторочно...
кто знает си++ думаю простая задача, а я чего то никак не могу, помогите....
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Trigun
4 / 4 / 0
Регистрация: 02.04.2010
Сообщений: 22
13.04.2010, 20:15     Как из файла записать данные в другой файл? #2
так смотри, окрываешь первый файл на чтение, т.е. ifstream "имя потака"("имя файла")
второй открываешь на запись fstream "имя потока(другое)"("имя файла")

после этого в цикле пока не конец первого файла вставляешь в первый поток все из первого файла
и в этом же цикле записываешь во второй файл все из первого потока
пример:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include<stdio.h>
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
#include<fstream.h>
 
typedef struct TOVAR
             {
               char name[12];
               int count;
               int cost;
               long sum;
             };
 
void bin_file (char *tf_name, char *bf_name);
 
 
void main()
{
  clrscr();
 
  char *bf_name, *tf_name;
  TOVAR price;
 
  cout<<"‚ўҐ¤ЁвҐ Ё¬п txt-д*©«*: ";
  cin>>tf_name;
 
  cout<<"‚ўҐ¤ЁвҐ Ё¬п bin-д*©«*: ";
  cin>>bf_name;
 
  bin_file (tf_name, bf_name);
 
  getch();
}
void bin_file(char *tf_name, char *bf_name)
{
  TOVAR price;
 
  ifstream f1(tf_name);
   if (!f1) cout<<"ЋиЁЎЄ* ®вЄалвЁп data-д*©«*!!!";
  fstream f2(bf_name, ios::binary|ios::in|ios::out);
   if (!f2) cout<<"ЋиЁЎЄ* ®вЄалвЁп bin-д*©«*!!!";
 
  while (!f1.eof())
     {
      f1>>price.name>>price.count>>price.cost;
      price.sum=price.count*price.cost;
      f2. write((char *)&price, sizeof(TOVAR));
     }
 
   f2.seekg(0);
   f1.close();
 
   cout<<setiosflags(ios::left)<<setw(16)<<"Ќ*Ё¬Ґ*®ў**ЁҐ"
   <<setw(9)<<"Љ®«-ў®"<<setw(7)<<"–Ґ**"<<setw(13)<<"ЋЎй*п жҐ**";
 
   while(!f2.eof())
      {
    f2.read((char *)&price, sizeof (TOVAR));
 
    cout<<"\n"<<setw(16)<<price.name<<setw(9)
    <<price.count<<setw(7)<<price.cost<<setw(13)<<price.sum;
      }
 
   f2.close();
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
13.04.2010, 20:25     Как из файла записать данные в другой файл? #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот самый простой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <fstream>
 
 
int main()
{
    std::ifstream input("input.txt"); //Открываешь первый файл для чтения
    std::string string; //Строка-буфер
    std::ofstream output("output.txt"); //Открываешь второй файл для записи
    while(std::getline(input, string))  //Считываешь из файла строку (пока не EOF)
        output << string << std::endl;  //И записываешь эту строку в выходной файл
    system("pause");
    return 0;
}
Добавлено через 2 минуты
Вот еще пример не в тему (копирование не построчно, а всего файла целиком):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
#include <fstream>
 
 
int main()
{
    std::ifstream input("input.txt"); //Открываешь первый файл для чтения
    std::ofstream output("output.txt"); //Открываешь второй файл для записи
    output << input.rdbuf(); //Копируешь буфер файлового потока ввода (input) в файловый поток вывода (output)
    system("pause");
    return 0;
}
Trigun
4 / 4 / 0
Регистрация: 02.04.2010
Сообщений: 22
13.04.2010, 20:29     Как из файла записать данные в другой файл? #4
Needler, дык тебе надо на Си погу или на С++
Alex5
883 / 618 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
13.04.2010, 20:51     Как из файла записать данные в другой файл? #5
Алгоритмы сортировок
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.04.2010, 21:08     Как из файла записать данные в другой файл? #6
Needler,
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <algorithm>
 
int main() {
  std::ifstream input("intput.txt");
  std::ofstream output("output.txt");
 
  std::copy(std::istream_iterator<char>(input), std::istream_iterator<char>(), std::ostream_iterator<char>(output));
 
 return 0;
}
Alex5
883 / 618 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
13.04.2010, 21:58     Как из файла записать данные в другой файл? #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <fstream>
#include <algorithm>
 
int main() {
  std::ifstream input("intput.txt");
  std::ofstream output("output.txt");
 
  std::copy(std::istream_iterator<char>(input), std::istream_iterator<char>(), std::ostream_iterator<char>(output));
 
 return 0;
}
Исходный файл
C++
1
2
3
 Пример использования 
 
   потокового итератора
Файл "output.txt" состоит из одной строчки
C++
1
Примериспользованияпотоковогоитератора
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.04.2010, 22:08     Как из файла записать данные в другой файл? #8
Alex5, забыл добавить строку
C++
1
output << std::noskpws;
Alex5
883 / 618 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
13.04.2010, 22:35     Как из файла записать данные в другой файл? #9
CyBOSSeR, Почему output? Пробелы, наверное, при чтении игнорируются?
Нашёл в справочнике
C++
1
input.unsetf(ios::skipws);
Теперь выходной файл :
C++
1
2
3
 Пример использования 
 
   потокового итератора
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.04.2010, 22:43     Как из файла записать данные в другой файл? #10
Alex5, да ты прав, это необходимо для входного потока.
Needler
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 7
14.04.2010, 22:50  [ТС]     Как из файла записать данные в другой файл? #11
мне надо на Си++. спасибо

Добавлено через 22 часа 37 минут
вот получилось переписать из файла в файл, Большое спасибо
RR4 00008040 00080000 12
RH5 00008100 10000000 23
RP6 00008040 С0000000 37
RK7 00009000 00800000 40
RG8 00008100 00008000 49
RE9 00009000 00480000 52
и надо мне в массив все записать, вот думаю построчно... сделать много массивов или один?
просто далее мне нужно будет вытаскивать 00008100 00008000 и сравнивать с массивом из таких же чисел... как вы думаете как это лучше сделать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2010, 03:05     Как из файла записать данные в другой файл?
Еще ссылки по теме:

C++ Считать данные из текстового файла по условию и записать их в другой текстовый файл (файловый ввод/вывод)
Как из массива записать объекты в файл, а потом из файла в другой массив ? C++
C++ Отсортировать числа из файла по возрастанию суммы цифр и записать в другой файл

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
15.04.2010, 03:05     Как из файла записать данные в другой файл? #12
Можно определить структуру "запись", которая будет содержать значения из одной строки файла, и объявить массив таких структур. А если преподаватель разрешает, то работать не с массивом, а с вектором (даже лучше с деком) структур.

Добавлено через 4 минуты
Например, так:
C++
1
2
3
4
5
6
7
8
9
struct record
{
    char field1[4];
    char field2[9];
    char field3[9];
    size_t field4;
};
 
std::deque<record> db;
Yandex
Объявления
15.04.2010, 03:05     Как из файла записать данные в другой файл?
Ответ Создать тему
Опции темы

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