niente da fare...
Non so cosa dirti... a me funziona benissimo... hai tolto quella inutile sprintf?
Amaro C++, il gusto pieno dell'undefined behavior.
guardate un po
codice:#include <stdio.h> #include "allegro.h" BITMAP *buf; void file() { FILE *file; char frase[150]; file=fopen("compito.txt", "r"); fscanf(file, "%149s[^%%]", frase); textout(screen,font,frase,1,1,255); fclose(file); } int main() { allegro_init(); install_keyboard(); buf = create_bitmap(640, 480); clear(buf); set_gfx_mode(GFX_SAFE, 640, 480, 0, 0); while(!key[KEY_ESC]) { file(); } return 0; } END_OF_MAIN();
- ma il problema è sempre lo stesso (stampa solo la prima parola)?
- il delimitatore è %, giusto?
- la textout che usi non è quella standard di Windows; puoi linkare la sua documentazione?
Amaro C++, il gusto pieno dell'undefined behavior.
la textout ke uso è quella della libreria grafica allegro
Quanto alle altre domande che ti ho posto?
Amaro C++, il gusto pieno dell'undefined behavior.
1.il problema è sempre quello della stampa
2.si % è il delimitatore
Prova a vedere con un debugger se la fscanf acquisisce correttamente tutta la stringa (cosa che dovrebbe fare), così vediamo di isolare il problema. In alternativa, se si tratta di un'applicazione console, vedi se printf(frase); di visualizza correttamente tutta la frase e non solo la prima parola.
Amaro C++, il gusto pieno dell'undefined behavior.