SDL yi veya herhangi bir harici kütüphanesini(SDL_net,SDL_image vs..) projenize init ettiğiniz zaman giriş/çıkış akımlarının(cout,cin,scanf,printf vs..) çalışmadığını görürsünüz. Bunun sebebi SDL'yi yazan arkadaşlar giriş çıkış akımlarını stdout/stderr adında text dosyalarına(projeyi çalıştırdığınızda .exe nin olduğu yerde bu dosyaları göreceksiniz) yönlendirme gereği duymuş olmaları. Bu yüzden giriş-çıkış işlemlerini direk olarak konsol ekranından yapamıyoruz. Ben bundan kurtulmanın iki yolunu buldum,
Eğer yine sorun yaşarsanız
#include
#include
using namespace std;
....
ofstream ctt("CON");
freopen( "CON", "w", stdout );
freopen( "CON", "w", stderr );
...
ctt.close();
veya
Kolay gelsin...
1- Zor olan yöntem den başlıyorum ilk. libSDLmain.a yı tekrardan derlemek. Derleme esnasında derleme ayarlarına "--disable-stdio-redirect" seçeneğini eklemek yeterli. Bu sayede SDL'nin yönlendirme ayarını iptal etmiş oluyoruz.
2- Kolay olan da ise yapmanız gereken tek şey aşağıdaki iki satırlık kodu projenizin main() fonksiyonuna eklemek.
freopen( "CON", "w", stdout );
freopen( "CON", "w", stderr );
freopen( "CON", "w", stderr );
Eğer yine sorun yaşarsanız
#include
#include
using namespace std;
....
ofstream ctt("CON");
freopen( "CON", "w", stdout );
freopen( "CON", "w", stderr );
...
ctt.close();
veya
FILE * ctt = fopen("CON", "w" );
freopen( "CON", "w", stdout );
freopen( "CON", "w", stderr );
...
ctt.close();
freopen( "CON", "w", stdout );
freopen( "CON", "w", stderr );
...
ctt.close();
Kolay gelsin...
