bewegte Bildausgabe



  • Hallo alle mit einander,
    nachdem ich hier des öfteren schon gestöbert habe wollte ich gerne mal eure Hilfe in Anspruch nehmen.Ich bin blutiger Anfänger und beschäftige mich im moment mit Arrays.
    In meinem jetzigen Quellcode habe ich das Problem das ich durch den wiederholten Bildaufbau den Zyklus sehe in dem die Konsole die Ausgabe schreibt.
    Gibt es den eine Möglichkeit das die Konsole das Ausgegebene erst Anzeigt wenn
    der komplette Text geschrieben ist ? Oder ein Zeichen an eine bestimmte Stelle in der Konsole zu delegieren?

    Quellcode :

    #include <iostream>

    #include <conio.h>

    #include <windows.h>

    using namespace std ;

    int a,b,c,d;

    int e,g=60,f=30,h=0;

    char Bild [60][60];//Array deklarieren

    int main (){

    for ( a=0;a<60;a++ ){ // Array

    for ( b=0;b <60;b++ ){ //automatisch

    ((Bild+a)+b)=0; //mit Zeiger

    cout<<Bild [a][b];} //füllen

    cout<<endl ;} //bis hier

    int eingabe ;

    do{

    eingabe=getch();//auswahl des zu beschreibenen Feldes

    if (eingabe =='8'){g-=1;}

    else if (eingabe =='2'){g+=1;}

    else if (eingabe =='4'){f-=1;}

    else if (eingabe =='6'){f+=1;}

    ((Bild+g)+f)=2; //Feld füllen

    system("cls"); // Bildschirm löschen

    for ( d=0;d <60;d++ ){ //Array neu ausgeben

    for ( e=0;e <60;e++ ){

    cout<<Bild [g][f];}

    cout<<endl ;} // bis hier

    ((Bild+g)+f)=0;} // vorher umgeschriebenes Arrayfeld wieder zurücksetzen

    while(h==0); // Schleife

    return 0 ;
    }



  • Du kannst dir erst die komplette Ausgabe zeilenweise/displayweise als String erzeugen und dann ausgeben.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ein neuer schrieb:

    Hallo alle mit einander,
    nachdem ich hier des öfteren schon gestöbert habe wollte ich gerne mal eure Hilfe in Anspruch nehmen.Ich bin blutiger Anfänger und beschäftige mich im moment mit Arrays.
    In meinem jetzigen Quellcode habe ich das Problem das ich durch den wiederholten Bildaufbau den Zyklus sehe in dem die Konsole die Ausgabe schreibt.
    Gibt es den eine Möglichkeit das die Konsole das Ausgegebene erst Anzeigt wenn
    der komplette Text geschrieben ist ? Oder ein Zeichen an eine bestimmte Stelle in der Konsole zu delegieren? Ups es hatte sich ein Fehler im Code eingeschlichen da ich vorher noch was probiert hatte deshalb noch mal das selbe. FAST !

    Quellcode :

    #include <iostream>

    #include <conio.h>

    #include <windows.h>

    using namespace std ;

    int a,b,c,d;

    int e,g=60,f=30,h=0;

    char Bild [60][60];//Array deklarieren

    int main (){

    for ( a=0;a<60;a++ ){ // Array

    for ( b=0;b <60;b++ ){ //automatisch

    ((Bild+a)+b)=0; //mit Zeiger

    cout<<Bild [a][b];} //füllen

    cout<<endl ;} //bis hier

    int eingabe ;

    do{

    eingabe=getch();//auswahl des zu beschreibenen Feldes

    if (eingabe =='8'){g-=1;}

    else if (eingabe =='2'){g+=1;}

    else if (eingabe =='4'){f-=1;}

    else if (eingabe =='6'){f+=1;}

    ((Bild+g)+f)=2; //Feld füllen

    system("cls"); // Bildschirm löschen

    for ( d=0;d <60;d++ ){ //Array neu ausgeben

    for ( e=0;e <60;e++ ){

    cout<<Bild [d][e];}

    cout<<endl ;} // bis hier

    ((Bild+g)+f)=0;} // vorher umgeschriebenes Arrayfeld wieder zurücksetzen

    while(h==0); // Schleife

    return 0 ;
    }



  • ich verstehe leider nicht wie Du das meinst.
    Ist den die Ausgabe einer Seite Strings schneller als eine Seite Array ?
    Denn ich müsste ja alle Zeilen ausgeben um den Cursor nach unten zu bekommen , oder ?



  • ich habe das Problem gelöst 😃


Anmelden zum Antworten