fstream

Модератор: Модераторы разделов

JelF
Сообщения: 62
ОС: Debian

fstream

Сообщение JelF »

Судя по всему эта тема еще далеко не последняя

Код:

#include <fstream> #include <string> using std::fstream; using std::string; class CSession { public: CSession(const string&); template <class T> CSession& operator<<(T); template <class T> CSession& operator>>(T&); ~CSession(); protected: fstream F,W; } io("sum"); CSession::CSession(const string& name) { string buf=name; buf+=".in"; F.open(buf.c_str(),std::ios::in); buf=name; buf+="out."; W.open(buf.c_str(),std::ios::out); } template <class T> CSession& CSession::operator<<(T a) { W<<a; return *this; } template <class T> CSession& CSession::operator>>(T& a) { F>>a; return *this; } CSession::~CSession() { F.close(); W.close(); } int main(int argc,char* argv[]) { int a,b; io>>a>>b; io<<a+b; }


Все бы хорошо, но программа выходит так ничего и не написав в "sum.out"
Еще одна проблема - в моем справочнике по С указан флаг std::ios::trunk, который g++ не видит в библиотеке. Программа будет компилится на сервере с devCpp, поэтоу он подразуевается. Если можно, скажите какойнить его аналог

И последний вопрос - как на bash организовать чтобы вместо

Код: Выделить всё

g++ !.cpp -o !.exe
!.exe

вводить простую команду. Тут уже банальная лень
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: fstream

Сообщение eddy »

Вот так

Код: Выделить всё

#include <fstream>
#include <string>

using std::fstream;
using std::string;

class CSession {
public:
CSession(const string&);
template <class T> CSession& operator<<(T);
template <class T> CSession& operator>>(T&);
~CSession();
protected:
fstream F,W;
} io("sum");

CSession::CSession(const string& name)
{
string buf=name;
buf+=".in";
F.open(buf.c_str(),std::ios::in);
buf=name;
buf+=".out";
W.open(buf.c_str(),std::ios::out);
}

template <class T> CSession& CSession::operator<<(T a)
{
W<<a;
return *this;
}

template <class T> CSession& CSession::operator>>(T& a)
{
F>>a;
return *this;
}

CSession::~CSession()
{
F.close();
W.close();
}

int main(int argc,char* argv[])
{
int a,b;
io>>a>>b;
io<<a+b;
}

Все нормально работает: из файла sum.in берет данные, в файл sum.out пишет их сумму.
Как ни странно, в коде кроме точки в .out ничего не менял :)

По поводу банальной команды - сделайте скрипт!
Кстати, зачем у бинарника расширение exe? Это вам не мастдай. Нафиг расширения.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
JelF
Сообщения: 62
ОС: Debian

Re: fstream

Сообщение JelF »

ой блин
спаибо :)
а то просто такие ляпы совсем не замечаю.
----------------------------
хммм, не помогло
Спасибо сказали:
arch
Сообщения: 74
ОС: freebsd/arch

Re: fstream

Сообщение arch »

вводить простую команду.

linfoline.homedns.org/gnu-make-ru/gnu-make-ru.html
Спасибо сказали:
JelF
Сообщения: 62
ОС: Debian

Re: fstream

Сообщение JelF »

спс
а зачем?

мне надо компилировать отдельные файлы, но с фиксироваными опциями
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: fstream

Сообщение Portnov »

CFLAGS='--тут --ваши -опции' make myproga

где myproga.c - файл с вашей программой.

Компиляцию/запуск повесьте в своём текстовом редакторе на хоткеи.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
JelF
Сообщения: 62
ОС: Debian

Re: fstream

Сообщение JelF »

о спс
Спасибо сказали: