You are not logged in.

  • Login

1

Sunday, June 12th 2011, 8:47pm

C: Text an der gleichen stelle austauschen. Wie?

Hab jetzt folgendes geschrieben:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void welcome()
{
           printf("\t\t+++++++++++++++++++++++++++++++++++++++++\n"                             
                      "\t\t+++++++++++++++++++++++++++++++++++++++++\n"                           
                      "\t\t++++++++++++++++\033[31m ZinsDia\033[0m ++++++++++++++++\n"   
                      "\t\t+++++++++++++++++++++++++++++++++++++++++\n"                           
                      "\t\t+++++++++++++++++++++++++++++++++++++++++\n");           
 
           sleep(1);
 
           printf("\t\t-----------------------------------------\n"                                                         
                      "\t\t-----------------------------------------\n"                                                         
                      "\t\t----------------\033[31m ZinsDia\033[0m ----------------\n"                          
                      "\t\t-----------------------------------------\n"                                                      
                      "\t\t-----------------------------------------\n");                                               
}
 
main ()
{
           welcome();
           return 0;
}


1. printf() soll nach „sleep(1)“ duch 2. printf() ersetzt werden nur wie? ?(

Hinweis: printf("\033[2J"); hab ich schon probier nur wird es an einer stelle weiter unten eingesetzt

2

Sunday, June 12th 2011, 9:55pm

Ich denke mal ein Moderator sollte diesen Beitrag verschieben nach C/C++/D.

So und nun zu deinem Problem. Mit dem "\033[2J" aus

C/C++ Quellcode

1
printf("\033[2J")

müsste ich mich auch erst wieder einarbeiten. Wird heute selten genutzt.

Willst du den Text auf dem Bildschirm sehen? Und dann an der gleichen Position durch anderen Text nach der Verzögerung durch

C/C++ Quellcode

1
sleep(1);   // Achtung: sleep() kennen nicht alle C-Compiler

ersetzen? Oder ist die Position des Textes dein Problem. Wenn letzteres zutrifft, sind da meist betriebssystemspezifische Lösungen am Start.

Frage zu Betriebssystem und Compiler: du willst das unter DOS mit dem Borland Compiler umsetzen?


Hier schon mal ein Teil:

C/C++ Quellcode

1
2
3
4
5
int main ()             // heute ist da "int main ()" oder "int main( int argc, char *argv[])" als Standard angesagt
{
           welcome();
           return 0;    // kann hier auch bei int main weggelassen werden. Der Compiler sollte das ergänzen, wenn der aktuell ist und 0 als Rüchgabewert geplant ist..
}


MfG f.-th.

3

Monday, June 13th 2011, 12:00pm

@bcc-fan

sleep(1)kennt er und das programm funktioniert ja auch soweit nur will ich nach dass nach einer Sekunden der text geändert wird. Nur funktioniert das nictht so wie ich mit das vogestellt habe. printf("\033[2J"); löscht zwar (mehr oder weniger) den Bildschirm nur sitzt der Cursor an einer anderen Stelle und der neue Text wird an der falschen Stelle eingesetzt. Das Ergebnis ist das der Text immer weiter nach unten wandert! Gibt es da eine andere methode :?:

4

Monday, June 13th 2011, 1:04pm

Es gibt andere Methoden, deshalb meine Frage nach Betriebssystem und Compiler. Denn viele Methoden funktionieren nicht überall.

Hier eine Lösung für den Digital Mars Compiler:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 2011jun12
// spezial source: Compiler -> Digital Mars
 
#include<stdio.h>
#include<disp.h>   // gibt es nur bei Digtal Mars oder?
 
void welcome()
{
    disp_open();
    disp_printf("\t\t+++++++++++++++++++++++++++++++++++++++++\n"
                "\t\t+++++++++++++++++++++++++++++++++++++++++\n"
                "\t\t++++++++++++++++ ZinsDia ++++++++++++++++\n"
                "\t\t+++++++++++++++++++++++++++++++++++++++++\n"
                "\t\t+++++++++++++++++++++++++++++++++++++++++\n");
 
    sleep(1);
 
    disp_move(0,0);
    disp_flush();
 
    disp_printf("\t\t-----------------------------------------\n"
                "\t\t-----------------------------------------\n"
                "\t\t------------------ZinsDia ---------------\n"
                "\t\t-----------------------------------------\n"
                "\t\t-----------------------------------------\n");
    disp_close();
    sleep(1);
}
 
int main ()
{
    welcome();
    return 0;
}


MfG bcc-fan

5

Monday, June 13th 2011, 4:25pm

Unix

ich habs ausprobiert funktioniert aber nicht :'( naja hab UNIX (GCC Compiler) wenn du noch was weiß kannst du mir das bitte schreiben?

6

Monday, June 13th 2011, 9:45pm

Ich denke mal ein Moderator sollte diesen Beitrag verschieben nach C/C++/D.

Sic es

7

Monday, June 13th 2011, 10:22pm

Hab z.Z. keine Unix/Linux deshalb nur grobe Hinweise:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void welcome()
{
           printf("\t\t+++++++++++++++++++++++++++++++++++++++++\n"                             
                      "\t\t+++++++++++++++++++++++++++++++++++++++++\n"                           
                      "\t\t++++++++++++++++  ZinsDia  +++++++++++++++++\n"   
                      "\t\t+++++++++++++++++++++++++++++++++++++++++\n"                           
                      "\t\t+++++++++++++++++++++++++++++++++++++++++\n");           
 
           sleep(1);
           system( Bildschirmlöschen);  // Was bei UNIX für Bildschirmlöschen hin kommt muss du selbst suchen
           // ist nicht gerade eine elegante Lösung - eventuell fehlte der dazugehörige Header.
 
           printf("\t\t-----------------------------------------\n"                                                         
                      "\t\t-----------------------------------------\n"                                                         
                      "\t\t---------------- ZinsDia ---------------\n"                          
                      "\t\t-----------------------------------------\n"                                                      
                      "\t\t-----------------------------------------\n");                                               
}
 
int main ()
{
           welcome();
           return 0;
}

Eine weitere Möglichkeit sollte mit ncurses existieren:
Beispielllink:
http://www.ibiblio.org/pub/Linux/docs/HO…mming-HOWTO.pdf
es gibt noch andere.

MfG bcc-fan

8

Tuesday, June 14th 2011, 9:21am

jup funktioniert nicht aber ich werde mich noch mal woanders umsehen.

10

Tuesday, June 14th 2011, 8:08pm

danke im zweiten link hab ich gefunden was ich gesucht habe :D

Social bookmarks