Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: SDL:ssä printf ja scanf

Sivun loppuun

Kray [25.01.2008 18:04:09]

#

Ongelmana on, että SDL:llää kayttäessä ohjelman printf ja scanf ei toimi. Lisäksi printf:llä tulostettu teksti menee stdout.txt tiedostoon. Pystyisikö tämän kiertämään? En jaksaisi viritellä purkkavirityksiä yksinkertaisiin ohjelmiin, joissa SDL:n grafiikoita ei ollenkaan käytetä.

Gaxx [25.01.2008 18:06:30]

#

freopen("CON", "w", stdout); // tulostus konsoliin
freopen("CON", "r", stdin); // luetaan konsolista

Kray [25.01.2008 18:12:37]

#

Öh.. Mites tuota käytetään?
Edit: Eli siis jos ne vain saisi ohjattua konsoliin, eli ei mene tiedostoihin.
Edit2: Öh, jää jumiin kun konsoli ei aukea... Eli se ohjaa sinne, mutta konsoli ei avaudu.

Metabolix [25.01.2008 18:17:29]

#

Voit myös jättää SDLmain-kirjaston linkittämättä ja lisätä ennen main-funktiota (SDL.h:n liittämisen jälkeen) rivin #undef main. SDL:n kiero toimintahan perustuu siihen, että main-funktion nimeksi määritellään (definen avulla) SDL_main ja "oikea" main-funktio sijaitsee SDLmain-kirjastossa. Tuo SDL:n main-funktio sitten kutsuu ohjelman mainia (SDL_mainia), kun on ensin tehnyt omat jäynänsä kuten tuon standardivirtojen uudelleenohjauksen tiedostoihin ja joitakin DirectDrawn käyttöön tarvittavia alustuksia.

Gaxx [25.01.2008 18:21:36]

#

Ja sen konsolin saa aukeamaan

AllocConsole();

Näin ainakin windowsissa.

Kray [25.01.2008 18:21:43]

#

Ei sekään toiminut... Eli siis toimii muuten mutta kun konsoli ei aukea!!! Eli kyllä kovasti yrittää käyttää konsolia mutta konsoli itse ei suvaitse aueta!!!
Edit: Ehditkon jo väliin sanomaan :)

Metabolix [25.01.2008 18:24:13]

#

Ohjelma pitää määrätä linkittymään konsoliohjelmaksi eikä GUI-ohjelmaksi. Tämä muistaakseni onnistuu ihan projektin asetuksista.

Huomaathan, että Gaxx antaa vastakkaista neuvoa, nimittäin sitä, miten SDL:n tyhmyydet korjataan, kun taas minä neuvon, miten SDL:ää estetään tekemästä tyhmyyksiä. Älä yritä näiden ohjeiden yhteiskäyttöä. :)

Kray [25.01.2008 18:30:24]

#

AllocConsole ja/tai GUI toimi :) Kiitos.
Edit: Sain toimimaan lopulta kun ajoin komentoriviltä...

Kray [26.01.2008 14:41:53]

#

Hmm... Ei vain suostu toimimaan jos en aja komentoriviltä :(.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta