Just nu i M3-nätverket
Jump to content

Kolumnbyte?


Dark_Order

Recommended Posts

Kan kännas som en onödig fråga men jag är mest nyfiken.

 

När jag listar ex en massa tal på skärmen så raddas dom ju rätt upp och ner.

Ifall jag vill ha det i flera kolumner så gör jag en loop som efter ex 20 skrivna rader positionerar markören (med gotoxy) ex 10 steg höger på xaxeln, listar 20 nya tal och flyttar markören osv...

 

Sedan när skärmen är full lägger jag in en getch() och därefter en clrscr() och så kör jag nästa sida.

 

Detta känns som riktigt spaghetti kod. Finns det något bättre sätt?

Link to comment
Share on other sites

Spaghettikod? Varför då? Det beror ju på hur man skriver sin kod. Spaghettikod brukar utmärkas av att man har massor av konstiga och onödiga beroenden åt olika håll. Det kan bero på flitigt användande av globala variabler och ytterliggare en massa saker.

 

Du frågar om det finns något bättre sätt. Ingen aning eftersom jag inte vet vad du har gjort. Ett sätt att lösa det är att man håller isär på alla deluppgifterna.

 

Du vill mata ut en helskärm med tal, därefter vänta på inmatning för att ha tid att läsa talen. Sedan vill du rensa skärmen för att mata ut en till helskärm med tal. Lite pseudokod:

 

while (tal finns)

{

mataUt(tal);

getch();

clrscr();

}

 

Slingan kör på tills inga tal finns kvar.

 

Funktionen mataUt() ska göra två saker:

 

1) Mata ut en kolumn med 20 rader

 

2) Stega fram tio tecken för att kunna mata ut 20 rader till

 

Pseudokod för det:

 

mataUt(tal)

{

int i, j;

for (i = 0; i < 80; i + 10)

for (j = 0; j < 20; j++)

skrivEttTal(j, i); // skriver ett

// tal på raden j och kolumnen i

}

 

Det är möjligt att du kanske var inne på en sådan lösning. I vart fall bör det gå bra att undvika konstiga beroenden om du angriper problemet på det viset. Funktionen skrivEttTal() som givetvis inte finns i verkligheten, skulle kunna anropa gotoxy() varje gång den ska skriva ett tal om gotoxy() funkar som jag tror.

 

Link to comment
Share on other sites

Nej, det kanske inte var spaghettikod, men det ser inte optimalt ut.

Jag var inne på den lösningen du beskrev. Den fungerar fint, men det jag nog mest var ute efter var om det finns något kommando/funktion i c++ som tabbar fram text. Att hålla på med gotoxy() känns onödigt och jobbigt.

Tack ändå.

 

 

 

 

Link to comment
Share on other sites

Jag antar att det inte räcker med '\t' eller '\v'? Men det ger det du vill ha, en tabb...

 

[inlägget ändrat 2001-10-11 19:34:44 av Prospero]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...