Модератор: Модераторы разделов
JelF
Сообщения: 62
ОС: Debian
Сообщение
JelF » 21.11.2008 18:35
Судя по всему эта тема еще далеко не последняя
Код:
#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 организовать чтобы вместо
вводить простую команду. Тут уже банальная лень
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux
Сообщение
eddy » 21.11.2008 18:53
Вот так
Код: Выделить всё
#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
Сообщение
JelF » 21.11.2008 19:51
ой блин
спаибо
а то просто такие ляпы совсем не замечаю.
----------------------------
хммм, не помогло
arch
Сообщения: 74
ОС: freebsd/arch
Сообщение
arch » 23.11.2008 16:04
вводить простую команду.
linfoline.homedns.org/gnu-make-ru/gnu-make-ru.html
JelF
Сообщения: 62
ОС: Debian
Сообщение
JelF » 23.11.2008 20:20
спс
а зачем?
мне надо компилировать отдельные файлы, но с фиксироваными опциями
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Сообщение
Portnov » 23.11.2008 22:55
CFLAGS='--тут --ваши -опции' make myproga
где myproga.c - файл с вашей программой.
Компиляцию/запуск повесьте в своём текстовом редакторе на хоткеи.
JelF
Сообщения: 62
ОС: Debian
Сообщение
JelF » 26.11.2008 20:54
о спс