• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Задача: Файловый ввод/вывод (текстовый)

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Помогите ришить задачу пожалуйста.
Случайным образом создать таблицу пар целочисленных значений и записать её в текстовый файл в виде:
X Y
5 1
2 8
12 3
- -
- -
Считать из файла пары значений и в тех из них, где X>Y , поменять значения X и Y местами. Результат записать в другой текстовый файл такого же формата.
 
D

DarkKnight

C++:
#include <iostream>
#include <fstream>
#include <time.h>
using namespace std;

void main(void)
{
setlocale(LC_ALL,"Russian"); //Установим локаль в 1251-кодовую страницу
ofstream fl1("file1.txt"); //Откроем файловый поток на запись
ofstream fl2("file2.txt"); //Откроем файловый поток на запись
ifstream fl1in; //Файловый поток на чтение
ifstream fl2in; //Файловый поток на чтение

int x, y; //Определение переменных x,y
int Count; //Кол-во элементов (пар)
cout<<"Введите кол-во пар которые нужно сгенерировать : ";
cin>>Count; //Ввод Count
srand(time(NULL)); //Инициализация генератора случ. величины
for (int i = 0; i<Count; i++) //Генерируем значения
{
x = rand()%100 * (rand()%2?-1:1); // Полученные значение будет от 0..99 * 1 или *-1
y = rand()%100 * (rand()%2?-1:1);
fl1<< x << " " << y << endl; //Запишим их в первый файл
}
fl1.close(); //Закроем дискриптор потока на запись первого файла
fl1in.open("file1.txt",ios::beg); //Откроем поток на чтение первого файла
cout<< endl << "Файл file1.txt содержит : "<<endl; 
while (!fl1in.eof()) // Пока не достигнут конец файла
{
char t;
fl1in>>x; //Получаем х
fl1in>>y; //Получаем y
//fl1in>>t;
fl1in.ignore(2); //Пропустим возврат корректи
cout<<x<<" "<<y<<endl; //Выводим их на экран
if (x > y) //Сравниваем *условие задачи*
{
int temp; //Меняем местами
temp = x;
x = y;
y = temp;
}
fl2<<x<<" "<<y<< endl; //пишим во второй файл
}
fl2.close(); //Закрываем дискриптор на запись 2ого файла
fl1in.close(); //Закрываем дискриптор на чтение 1ого файла
fl2in.open("file2.txt",ios::beg); //Открываем 2ой файл на чтение
cout<< endl << "Файл file2.txt содержит : " << endl; 
while (!fl2in.eof()) //Пока не достигнут конец кторого файла
{
cout<< (char)fl2in.get(); //Выводим его на экран

}
fl2in.close(); //Закроем дискриптов

}
 
A

acorn

C++:
		if (x > y) //Сравниваем *условие задачи*
{
int temp; //Меняем местами
temp = x;
x = y;
y = temp;
}
fl2<<x<<" "<< y<< endl; //пишим во второй файл

зачем так сложно?

C++:
if (x > y) //Сравниваем *условие задачи*
{
fl2<<y<<" "<< x<< endl;
}
else
{
fl2<<x<<" "<< y<< endl; 
}
 
L

lazybiz

Пробелы между " << " не забывайте ставить. А то хрен поймешь что вы пишите...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!