Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Konsolin tyhjennys C:llä

Sivun loppuun

ville-v [09.02.2005 08:51:29]

#

Millä C:n funktiolla voi tyhjentää konsoliin tulostetun tekstin?
Haluaisin myös tietää, miten konsolin tekstin ja taustan värit voi vaihtaa.

Blaze [09.02.2005 09:35:51]

#

Termiksen tyhjentämiseen ei käsittääkseni oo olemassa yhtä kaikkialla luotettavasti toimivaa tapaa (monesti on ehotettu tuhannen tyhjän rivin tulostusta, mitä ei voi kovin eleganttina pitää), joten kysynkin miksi se pitäisi tyhjentää? Itse en keksi mitään järkevää syytä, ellei kyseessä ole joku peli tms., joka olisi parempi tehdä jollain curses -kirjastolla tms.

Värin vaihtokin taitaa olla vähän hankalaa luotettavasti, kun Windowsin terminaali ei tue ANSI-koodeja.

zacura [09.02.2005 11:46:16]

#

Windowsissa onnistuu WinAPI:lla.
https://www.ohjelmointiputka.net/keskustelu/7681-delphi-console-kysymyksiä
Tuolla on kirjoittamani esimerkki delphille mutta idea varmasti selväksi siitäkin. Kysy jos on jotain epäselvää.

ZcMander [09.02.2005 14:02:14]

#

Mitä turhia, helpommalla pääsee kun käyttää valmiita kirjastoja esim. PDcurses(win), Ncurses(linux) tai conio.h(borland) Putkaassa on opas Ncursessista joka toimii myös PDcursessissa.

dungeon86 [09.02.2005 14:09:02]

#

Niinpä, ainakin ruuduntyhjennys onnistuu useimmilla kääntäjillä seuraavasti (eikä pelkällä Borlandilla):

#include <stdio.h> /* Sisällytetään standardi syöttö- ja tulostus kirjasto */
#include <conio.h> /* Sisällytetään clrscr()-funktion käyttöön tämä kirjasto */

int main(void) /* Pääohjelma */
{
 int i = 500; /* Ruudun täyttöä varten tulostetaan i merkkiä */
 while(i > 0) /* Ruudun täyttö luuppi */
  printf("x");
 clrscr(); /* Tämä funktio siis todellakin tyhjentää ruudun */
 return 0; /* Poistutaan pääohjelmasta */
}

Linkku [09.02.2005 14:59:49]

#

dungeon86 kirjoitti:

Niinpä, ainakin ruuduntyhjennys onnistuu useimmilla kääntäjillä seuraavasti (eikä pelkällä Borlandilla):

#include <stdio.h> /* Sisällytetään standardi syöttö- ja tulostus kirjasto */
#include <conio.h> /* Sisällytetään clrscr()-funktion käyttöön tämä kirjasto */

int main(void) /* Pääohjelma */
{
 int i = 500; /* Ruudun täyttöä varten tulostetaan i merkkiä */
 while(i > 0) /* Ruudun täyttö luuppi */
  printf("x");
 clrscr(); /* Tämä funktio siis todellakin tyhjentää ruudun */
 return 0; /* Poistutaan pääohjelmasta */
}

Ööh, miten tämä toimii muilla kuin borlandilla, jos muilla ei ole conio.h-tiedostoa?

Komodo [09.02.2005 15:54:59]

#

Linkku kirjoitti:

Ööh, miten tämä toimii muilla kuin borlandilla, jos muilla ei ole conio.h-tiedostoa?

on conio.h muillakin, mutta borlandin conio.h sisältää jotain extroja, kuten gotoxy():n ja luultavasti myös tun clrscr():n

Juice [09.02.2005 18:41:21]

#

Mulla on Dev-C++ ja siinä on conio.h jossa on myös gotoxy() ja clrscr().

Linkku [09.02.2005 19:29:00]

#

Komodo kirjoitti:

Linkku kirjoitti:

Ööh, miten tämä toimii muilla kuin borlandilla, jos muilla ei ole conio.h-tiedostoa?

on conio.h muillakin, mutta borlandin conio.h sisältää jotain extroja, kuten gotoxy():n ja luultavasti myös tun clrscr():n

Mutta sitä ei löydy Linuxista.

ville-v [10.02.2005 10:05:35]

#

Blaze: Olen tekemässä tekstipohjaista roolipeliä. Tavallisimpien funktioiden lisäksi tarvitsen tuon konsolin tyhjennyksen, ja ehkä värien vaihdon.
Juice: Niin mullakin.
dungeon86: Kiitos hyvästä funktiosta. Mutta se tiedosto on ainakin Dev-C++ssa conio.c ja whilestäsi puuttuu aaltosulut ja i:n pienennys :P

Metabolix [10.02.2005 21:40:52]

#

ville-v kirjoitti:

Mutta se tiedosto on ainakin Dev-C++ssa conio.c

Oikeaoppisesti ohjelmaan pitää sisällyttää conio.h ja linkittää conio.o tai vastaava. conio.c kyllä sisältää ne funktiot, mutta on aivan turhaa kääntää se aina uudestaan.

Komodo [11.02.2005 12:30:55]

#

ville-v kirjoitti:

whilestäsi puuttuu aaltosulut ja i:n pienennys :P

"kieliopillisesti" tuo while on muuten ihan oikein, jos en väärin muista.

Meitsi [11.02.2005 13:45:54]

#

Huono mutta helppo tapa:

system("CLS");

ville-v [15.02.2005 11:29:35]

#

Komodo kirjoitti:

"kieliopillisesti" tuo while on muuten ihan oikein, jos en väärin muista.

Niin onkin, mutta se vain pukkaa tota äksää ruudulle, kunnes sen sulkee.

Deffi [15.02.2005 18:02:10]

#

Meitsi kirjoitti:

Huono mutta helppo tapa:

system("CLS");

tota ei saa tehdä ikinä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta