#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;
}
редирект вывода cout
Код:
Такой код не выводит ничего на консоль.
При этом он не знает, что такое 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;
}
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", то создается файл, в который записано все, что надо. Но на самой консоли это не отображается. Не понимаю почему.
Цитата: Arkady
Добрый день,
Такой код не выводит ничего на консоль.
При этом он не знает, что такое endl. Если endl убираю, то он просто отрабатывает, в дебаге проходит, но ничего на консоли не появляется. Внутри кода шаблона cout запись в rdbuf не отрабатывает.
При этом изменив его так:
Я могу заставить его писать в файл. Но блин, а как заставить его писать на консоль??)
Честно говоря, не представлял, что такое вообще может не работать, но вот не работает.
Скачал с stlport последнюю версию (у меня Borland CBuilder 6), может быть моя версия не та, но при "вшивании" приходится решать целую кучу проблем. А я подозреваю, что решение должно быть элементарным.
Может кто-нибудь знает?
UPD: если из консоли стартую exe-шник с > "tst.txt", то создается файл, в который записано все, что надо. Но на самой консоли это не отображается. Не понимаю почему.
Код:
#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;
}
#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;
}
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.
Цитата: Ramon
Осознайте разницу между main и WinMain.
Считал всегда, что WinMain просто обертка с чем-то нужным для винды. Спасибо!
Цитата:
При этом он не знает, что такое endl. Если endl убираю, то он просто отрабатывает, в дебаге проходит, но ничего на консоли не появляется.
endl тоже находится в пространстве имён std, т.е. нужно писать std::endl.
забыли
Спасибо!