PDA

Visualizza la versione completa : [C++] ritorno a inizio riga '\r' e ritorno a precedente riga '\?'


kirakira93
13-05-2010, 17:28
Il codice parla da se :)



#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
cout << "Prima linea" << endl;
cout << "Seconda linea";
cout << '\r';
Sleep(1000);
cout << "Terza linea "<<endl;
Sleep(1000);
cout << "La domanda e': come faccio a stampare sopra la strina prima linea???"
<< " il problema e' che non esiste un carattere tipo '\\r' che ritorna alla precedente riga!"
<< " inoltre anche facendo tentativi con le API console non sono riuscito :( \ncome posso fare?"
<< "\n\n\tqualcuno mi puo' aiutare :( :( :(";
getchar();

return EXIT_SUCCESS;
}

MItaly
13-05-2010, 17:34
O usi le API della console (su Windows), o usi le sequenze di escape ANSI (sui terminali *nix) o ti arrangi con il carattere di backspace (\b).

oregon
13-05-2010, 18:17
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
cout << "La cosa migliore è studiare bene le API per la console, scrivere del codice, chiedere aiuto per eventuali chiarimenti relativi al codice scritto ...";
getchar();

return EXIT_SUCCESS;
}

kirakira93
13-05-2010, 21:07
carattere di backspace (\b). ... ebbene questo non funziona perchè si ferma a inizio riga.....

La cosa migliore è studiare bene le API per la console anche qui ho toppato rigorosamente :)... ci ho provato ma senza esiti.... forse con un fseek() a stdout si può fare qualcosa.... mi sembra IMPOSSIBILE che l'unico modo sia usare le API.... altrimenti mi tocca creare il processo della console.... attaccare il processo...etc...che poi non porta a molto.... HELP .... :(

MItaly
13-05-2010, 21:13
Originariamente inviato da kirakira93
... ebbene questo non funziona perchè si ferma a inizio riga.....
Sicuro? Mi ricordavo diversamente...

anche qui ho toppato rigorosamente :)... ci ho provato ma senza esiti.... forse con un fseek() a stdout si può fare qualcosa....
No. stdout non è seekabile. (che neologismo orrendo :( )


mi sembra IMPOSSIBILE che l'unico modo sia usare le API.... altrimenti mi tocca creare il processo della console.... attaccare il processo...etc...che poi non porta a molto.... HELP .... :(
Ma che cosa stai dicendo? Ti basta recuperare l'handle alla console esistente tramite GetStdHandle, o con CreateFile passando come file da aprire "CONOUT$". Leggi qui (http://msdn.microsoft.com/en-us/library/ms682075%28VS.85%29.aspx).

kirakira93
13-05-2010, 21:36
ok fatto....:D ma adesso arriva il bello....




#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <conio.h>

using namespace std;

int main(int argc, char *argv[])
{

HANDLE hStd = GetStdHandle(STD_OUTPUT_HANDLE);


system(TEXT("PAUSE"));

return EXIT_SUCCESS;
}

kirakira93
15-05-2010, 14:03
Ragazzi non avete nessuna idea??? mi serve proprio questo codice e non riesco a venirne fuori!!! aiuto vi prego..... :cry: :cry: :cry: :cry:

oregon
15-05-2010, 14:09
Originariamente inviato da kirakira93
Ragazzi non avete nessuna idea???

Studia la API

http://msdn.microsoft.com/en-us/library/ms686025(v=VS.85).aspx

kirakira93
15-05-2010, 17:30
Grazie.... se avrò problemi scriverò ancora....(spero di non averne :D )

Loading