Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

редирект вывода cout

1.8K
08 августа 2011 года
Arkady
153 / / 18.12.2007
Добрый день,

Код:
#include <windows.h>
#pragma hdrstop
//#include <cstdio>
//#include <iostream>
//#include <fstream>
#include<iostream>
//#include<iomanip>

#pragma argsused
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    std::cout << "SDFSDFSDF" << endl;
    return 0;
}

Такой код не выводит ничего на консоль.
При этом он не знает, что такое endl. Если endl убираю, то он просто отрабатывает, в дебаге проходит, но ничего на консоли не появляется. Внутри кода шаблона cout запись в rdbuf не отрабатывает.

При этом изменив его так:
 
Код:
#include <fstream>
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    ostream F;
    F.open("C://bla.txt");
    std::cout.rdbuf(F.rdbuf());
    std::cout << "SDFSDFSDF";
    return 0;
}

Я могу заставить его писать в файл. Но блин, а как заставить его писать на консоль??)

Честно говоря, не представлял, что такое вообще может не работать, но вот не работает.

Скачал с stlport последнюю версию (у меня Borland CBuilder 6), может быть моя версия не та, но при "вшивании" приходится решать целую кучу проблем. А я подозреваю, что решение должно быть элементарным.
Может кто-нибудь знает?

UPD: если из консоли стартую exe-шник с > "tst.txt", то создается файл, в который записано все, что надо. Но на самой консоли это не отображается. Не понимаю почему.
260
08 августа 2011 года
Ramon
1.1K / / 16.08.2003
Цитата: Arkady
Добрый день,

Код:
#include <windows.h>
#pragma hdrstop
//#include <cstdio>
//#include <iostream>
//#include <fstream>
#include<iostream>
//#include<iomanip>

#pragma argsused
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    std::cout << "SDFSDFSDF" << endl;
    return 0;
}

Такой код не выводит ничего на консоль.
При этом он не знает, что такое endl. Если endl убираю, то он просто отрабатывает, в дебаге проходит, но ничего на консоли не появляется. Внутри кода шаблона cout запись в rdbuf не отрабатывает.

При этом изменив его так:
 
Код:
#include <fstream>
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    ostream F;
    F.open("C://bla.txt");
    std::cout.rdbuf(F.rdbuf());
    std::cout << "SDFSDFSDF";
    return 0;
}

Я могу заставить его писать в файл. Но блин, а как заставить его писать на консоль??)

Честно говоря, не представлял, что такое вообще может не работать, но вот не работает.

Скачал с stlport последнюю версию (у меня Borland CBuilder 6), может быть моя версия не та, но при "вшивании" приходится решать целую кучу проблем. А я подозреваю, что решение должно быть элементарным.
Может кто-нибудь знает?

UPD: если из консоли стартую exe-шник с > "tst.txt", то создается файл, в который записано все, что надо. Но на самой консоли это не отображается. Не понимаю почему.



Осознайте разницу между main и WinMain.

1.8K
08 августа 2011 года
Arkady
153 / / 18.12.2007
Цитата: Ramon
Осознайте разницу между main и WinMain.



Считал всегда, что WinMain просто обертка с чем-то нужным для винды. Спасибо!

2.1K
08 августа 2011 года
Norgat
452 / / 12.08.2009
Цитата:
При этом он не знает, что такое endl. Если endl убираю, то он просто отрабатывает, в дебаге проходит, но ничего на консоли не появляется.



endl тоже находится в пространстве имён std, т.е. нужно писать std::endl.

64K
09 августа 2011 года
napalm256
13 / / 15.02.2011
using namespace std;
забыли
1.8K
12 августа 2011 года
Arkady
153 / / 18.12.2007
Спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог