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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2011, 10:14   #1
feonit
 
Регистрация: 04.03.2011
Сообщений: 5
Злость Как всю информацию с экрана записать в файл?

В консольном окне запускается программка, на экране появляется информация, и эту информацию нужно скопировать в текстовый файл. Подскажите как это делается!
feonit вне форума Ответить с цитированием
Старый 04.03.2011, 10:50   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Судя по вашему описанию: делается скриншот, скармливается программе распознавания текста, результат сохраняется в файл.
Альтернативное видение: когда выводите на экран текст, одновременно записывайте его в файл. Вроде этого:
Код:
#include <iostream>
#include <fstream>

int main()
{
std::string s = "Hello, Multiverse!";
std::ofstream file("file.txt");
std::cout << s;
file << s;
}
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 04.03.2011, 11:00   #3
feonit
 
Регистрация: 04.03.2011
Сообщений: 5
По умолчанию

ясна, значит вопрос не понятно написал)
вот задача
на основе класса calc,вычисляющего sin,cos,tan,asin,acos,atac,sinh,cos h,tanh, создать класс, который по выбору пользователя выводит на экран либо тригонометрические функции, либо обратные тригонометрическим,либо гиперболические. ВСЮ ИНФОРМАЦИЮ С ЭКРАНА ЗАПИСАТЬ В ФАЙЛ.

#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <iostream.h>
//---------------------------------------------------------------------------

#pragma argsused
using namespace std;
int main(int argc, char* argv[])
{
class calc
{double a;
public:
calc (double a1=0){a=a1;}
void trig1() {cout <<"\n"<<sin(a)<<" "<<cos(a)<<" "<<tan(a);}
void trig2() {cout <<"\n"<<asin(a)<<" "<<acos(a)<<" "<<atan(a);}
void trig3() {cout <<"\n"<<sinh(a)<<" "<<cosh(a)<<" "<<tanh(a);}
};

class CALC1 : public calc
{int b;
public:
CALC1 (double a1=0,int b1=0) {b=b1; //a=a1;
calc *pos = new calc(a1);
FILE* fp = fopen("my_file.txt","w");
if(fp != NULL){
if (b>3 || b<1) cout << b <<" - неправильный ввод\n";
if (b==1) {pos->trig1();cout <<" соответственно sin(a) cos(a) tan(a)";}
if (b==2) {pos->trig2();cout <<" соответственно asin(a) acos(a) atan(a)";}
if (b==3) {pos->trig3();cout <<" соответственно sinh(a) cosh(a) tanh(a)";}

// проблема в том как получить строку которую выдаёт функция void trig1() чтобы можно её было использовать
//cout << pos.trig1();//хотелось бы сдесь получить строку, не вонося изменений в класс calc, чтобы иметь возможность
записать её(результат функции trig1) в файл my_file.txt


else printf("Неозможно открыть файл на запись.\n");
fclose(fp);
}
}
};

SetConsoleCP(1251); // Russian
SetConsoleOutputCP(1251);

cout <<"Введите вещественное число \n";
double a;
cin >> a;
cout <<"Выбирите: Тригонометрические, обр.тригонометр или гиперболические - 1 , 2 или 3 \n";
int b;
cin >> b;
CALC1 *POS1 = new CALC1(a,b);
delete POS1;

return 0;
}

Последний раз редактировалось feonit; 04.03.2011 в 11:10.
feonit вне форума Ответить с цитированием
Старый 04.03.2011, 14:33   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Вот это
Код:
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <iostream.h>
должно выглядеть так:
Код:
#include <cmath>
#include <iostream>
т.к. VCL (Visual Component Library) в консольном приложении никоим местом не нужна, а согласно стандарту подключаемые стандартные заголовочные файлы не имею расширения, при этом файлы, пришедшие из Си, получают префикс c- : math.h -> cmath.
А по поводу задания могу посоветовать все-таки изменить методы классов, добавив в них помимо вывода на экран одновременный вывод в файл. Для этого по аналогии с cout лучше всего использовать файловые потоки, как я написал выше.
Ну а если вам очень хочется получать строку из функции, то можете сделать что-то вроде этого:
Код:
std::string f()
{
std::string s;
//Тут формирование строки. Как вариант - с использованием строковых потоков
std::cout << s;
return s;
}
И наконец - для оформления кода на форуме используйте тег CODE (значок # над окном сообщения).
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стоит ли шифровать всю информацию в БД mar4elo PHP 16 14.01.2011 17:12
Как очистить текстовый файл и записать другую информацию Swatch Microsoft Office Access 2 23.12.2010 13:32
Считывать информацию с экрана Serzhl0o Помощь студентам 2 24.10.2009 14:24
С# - как в таблицу MS SQL записать информацию из формы? _mobility Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 01.01.2009 12:29
Как в С++ вывести(записать ) информацию в файл, когда инфа находится в методе класса? Artur_cod Общие вопросы C/C++ 1 06.05.2007 00:34