IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> input.txt/output.txt, С++
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской
Реальное имя: Илья

Репутация: -  1  +


Нашел сайт, где задачи тестирует сервер. Но там для ввода/вывода данных нужно использовать текстовые файлы. Подскажите, пожалуйста, как открывать эти файлы, считывать, перезаписывать. И еще, input.txt должен быть пустым? Кто может, разъясните. smile.gif


--------------------
Я бы изменил мир, да Бог не дает исходников.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


На таких сайтах почти всегда есть faq с примерами решений на всех допустимых языках.

В файле input.txt - входные данные в формате, описанном в условии задачи.

Для чтения входных данных используй либо ifstream и оператор >>, либо fopen и fscanf. Для записи - либо ofstream и <<, либо fopen и fprintf.

Через fstream часто удобнее писать, но работает на порядок медленнее - если данные большие, лучше fscanf/fprintf.

Хочешь пример - дай задачку оттуда, закодю, выложу.

Если интересно, вот мой список, <пафосно>собиравшийся годами</пафосно> smile.gif Если твоего сайта там нет - скажи плиз.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Как обычно - объявляешь переменные и открываешь файлы:

#include <fstream>
...
fstream f_in, f_out;

f_in.open("input.txt",ios::in); // для чтения
f_out.open("output.txt",ios::out); // для записи

// а теперь вместо cin >> n
f_in >> n; // n будет читаться из файла


То же самое и с записью в файл...
f_out << "чего-то там... " << endl;
выведет строку в файл output.txt... Только потом не забудь закрыть (f_out.close())...

Цитата
И еще, input.txt должен быть пустым?
Почему же пустым? Через него ты получаешь данные, то есть, у себя на компьютере ты должен в него внести тестовые данные, а когда загрузишь программу на сервер, она будет читать ИХ данные из ИХ файла input.txt...

Добавлено через 1 мин.
Цитата
Через fstream часто удобнее писать
yes2.gif Привычнее как-то...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской
Реальное имя: Илья

Репутация: -  1  +


Цитата
Если интересно, вот мой список, <пафосно>собиравшийся годами</пафосно> Если твоего сайта там нет - скажи плиз.

Хороший список smile.gif) сайт из него )

Вот что у меня получилось. Сложение 2х чисел:

#include <fstream>
#include <iostream>
using namespace std;
int main ()
{
int a,b;
fstream f_in, f_out; //для чего это?
f_in.open("input.txt",ios::in);
f_out.open("output.txt",ios::out);
f_in>>a>>b;
f_out<<a+b<<endl;
(f_out.close());
return 0;
}


Все корректно? smile.gif

Сообщение отредактировано: first_day -


--------------------
Я бы изменил мир, да Бог не дает исходников.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


да, все правильно.

Цитата
fstream f_in, f_out; //для чего это?

как для чего? переменные объявили. это обычные переменные, как а и b.



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской
Реальное имя: Илья

Репутация: -  1  +


Понял, спасибо!


--------------------
Я бы изменил мир, да Бог не дает исходников.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской
Реальное имя: Илья

Репутация: -  1  +


А если через fscanf/fprintf, что подключать надо? Можно пример?

И еще, как использовать scanf/printf (если правильно написал...)


--------------------
Я бы изменил мир, да Бог не дает исходников.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


#include "stdio.h"

FILE *fin = fopen("input.txt", "r");
FILE *fout = fopen("output.txt", "w");

int a, b;

int main()
{
fscanf(fin, "%d %d", &a, &b);
fprintf(fout, "%d\n", a + b);
return 0;
}


О том, что можно вытворять с printf и scanf, спрашивай у гугла smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской
Реальное имя: Илья

Репутация: -  1  +


Мда, с fstream явно меньше набирать ))

Спасибо.


--------------------
Я бы изменил мир, да Бог не дает исходников.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.09.2020 16:08
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name