kleines problemchen mit gotoxy()



  • hi ihr,

    ich bin mir nicht 100% sicher ob das hier der richtige platz für gotoxy() ist aber nunja.

    hier mein problem:
    ich hab ein schnipselchen code gebastelt, das einen string zentriert in der mitte des bildschirms platzieren soll.

    die berechnungen funzen auch ganz gut aber wenn gotoxy() mit den werten gefüttert wird scheint ihm das recht egal zu sein, denn die ausgabe kommt _immer_ oben links im eck... 😞

    hat jemand ne idee warum?

    hier mal ein kleiner code-auszug:

    // defined sind: <stdlib.h>, <stdio.h>, <string.h>, <conio.h>, <windows.h>, <dos.h>
    
    int CenterStringCRT(int Row, char * pString); // prototyp
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
      char String[]="Test String";  // string der gemittelt werden soll
      char * pString;               // zeiger auf den string
    
      pString = &String[0];         // zeiger-zuweisung
    
      CenterStringCRT(4, pString);  // funktionsaufruf (string soll mittig in die 4. zeile geschrieben werden)
    
      getch();
      return 0;
    }
    //---------------------------------------------------------------------------
    
    int CenterStringCRT(int Row, char * pString)  // eigentliche funktion zum mitteln
    {
      int CenterPosition;
      CenterPosition = ((80-strlen(pString))/2);  // anfangs y-position berechnen
      gotoxy((int)Row, (int)CenterPosition);      // cursor positionieren
      printf("%s\n",pString);                     // string ausgeben
      return 0;
    }
    

    hat wer eine ahnung wo ich mist gebaut habe?

    danke euch

    root2



  • Es heißt gotoxy, nicht gotoZeileSpalte ... vertausch mal die Koordinaten, dann klappts auch mit dem Nachbarn 😉 (ich geh davon aus dass du schonmal ein Koordinatensystem gesehen hast)

    BTW Wieso castest du die Argumente an gotoxy?



  • danke 😉
    da war ich wohl mal wieder aufm schlauch gestanden...
    aber so spät am abend kann man mir das doch mal nachsehen oder? 😉

    stimmt, das casten muss nicht sein, da Row eh ein INT ist und CenterPosition durch das /2 ja auch eine Integer Division hat... also ists überflüssig 😉

    root2

    [ Dieser Beitrag wurde am 04.10.2002 um 23:42 Uhr von root2 editiert. ]



  • ab in das Konsolen Forum damit


Anmelden zum Antworten