Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2009, 18:35   #1
Many man
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 83
По умолчанию Задача на файл в C++

Даны два файла с числами. Поменять местами их содержимое(использовать вспомогательный файл)
Код:
#include"fstream"
#include"iostream"
#include"string"
using namespace std;
int main()
{
	fstream both("f.txt");
	fstream both("g.txt");
	fstream both("h.txt");
	int i;
	while (in.peek()!=EOF)
	{
		in>>i;
в f и g файлы с числами, а h вспомогательный
У меня вопросы
1)нужна ли эта строчка
Код:
in>>i;
2) как записывать данные с заменой
Many man вне форума Ответить с цитированием
Старый 06.05.2009, 19:28   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Даны два файла с числами.
А чисел много?
Почему бы просто read-ом не считывать весь файл?
Цитата:
2) как записывать данные с заменой
Код:
fstream f("file.txt", fstream::out);
или просто
Код:
ofstream f("file.txt");
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.05.2009, 20:07   #3
Many man
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 83
По умолчанию

А как сделать чтобы читать данные из определённого файла(например сначало нужно считать данные из f.txt и записать в файл h.txt, чтобы потом из файла g.txt считать и записать данные в f.txt,и из h.txt в g.txt)
Many man вне форума Ответить с цитированием
Старый 06.05.2009, 20:10   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
например сначало нужно считать данные из f.txt и записать в файл h.txt, чтобы потом из файла g.txt считать и записать данные в f.txt,и из h.txt в g.txt
о_О
Что-то не уловил что куда надо записать.
Вы хотите обменять данные двух файлов через временный файл?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.05.2009, 20:20   #5
Many man
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 83
По умолчанию

да, нужно обменять данные двух файлов через временный файл
Many man вне форума Ответить с цитированием
Старый 06.05.2009, 20:42   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Как-то так.
Наверняка можно проще, ну да ладно.
Код:
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
FILE *f1,*f2,*tmp;
char *buf,len;

f1 = fopen("1.txt","rb");
f2 = fopen("2.txt","rb");
tmp = fopen("tmp.txt","w+b");
fseek(f1,0,SEEK_END);
len = ftell(f1);
rewind(f1);

buf = (char*)malloc(sizeof(char)*len);

fread(buf,1,len,f1);
fwrite(buf,1,len,tmp);

free(buf);
fseek(f2,0,SEEK_END);
len = ftell(f2);
rewind(f2);
buf = (char*)malloc(sizeof(char)*len);

fclose(f1);
f1 = fopen("1.txt","w");
fread(buf,1,len,f2);
fwrite(buf,1,len,f1);
free(buf);
fclose(f1);
free(buf);

fclose(f2);
f2 = fopen("2.txt","w");
fseek(tmp,0,SEEK_END);
len = ftell(tmp);
rewind(tmp);
buf = (char*)malloc(sizeof(char)*len);

fread(buf,1,len,tmp);
fwrite(buf,1,len,f2);

free(buf);
fclose(f2);
fclose(tmp);
remove("tmp.txt");

// getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.05.2009, 21:13   #7
Many man
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 83
По умолчанию

У меня не работает...
Many man вне форума Ответить с цитированием
Старый 06.05.2009, 21:15   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
У меня не работает...
Что я могу сказать? У меня все работает.
Вы файлы 1.txt и 2.txt создаете?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.05.2009, 21:17   #9
Many man
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 83
По умолчанию

Да файлы создаю, думаю у меня проблемы с компилятором.
Скажите а какой у вас компилятор?
Many man вне форума Ответить с цитированием
Старый 06.05.2009, 21:21   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Скажите а какой у вас компилятор?
wxDev-C++ 7 (компилятор MinGW).

А в чем проявляется "не работает"?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на файл n1ce > Kuzia Помощь студентам 9 06.02.2009 13:02
на файл задача пожалуйста Neznau Паскаль, Turbo Pascal, PascalABC.NET 13 03.06.2008 11:30
Задача на файл Foky Паскаль, Turbo Pascal, PascalABC.NET 8 08.04.2008 23:17
Задача на файл в паскале Юрии Александрович Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2007 17:08