Archief - teken laten zakken in C++

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

mattias112

Legacy Member
hey,
ik wil een heel simpel functietje make waar ik een teken laat zakken tot 10 regels, ik doe dit, zoals iedereen zou doen wss met een for loop, maar ik krijg op de 10 regels allemaal het teken, dit kan ik voorkomen denk ik door het teken te schrijven, dan endl; , en daarna het tekentje op de eerste lijn terug te verwijderen, maar hoe doe ik dit?
dank

Gurdt

Legacy Member
Wa is nu eigenlijk uw vraag?
Gij wilt een teken laten zakken tot 10 regels? Dat slaat toch op niks??

Ik zal dan maar een antwoord geven zoals ik DENK dat gij bedoelt:

Code:
void f()
{
    for(int i = 1; i <= 10; ++i
    {
        system("cls"); //maak het scherm terug leeg
        for(int j = 1; j < i; ++j)
            printf("\n");
        printf("UWTEKEN");
    }
}
Bovenstaande code zal eerst ne tekst uitprinten op de 1e regel van uw console.
Dan alles terug wegdoen en printen op de 2e regel. Dan de 3e regel enzovoort...

MorGo7h

Legacy Member
Gurdt zei:
Wa is nu eigenlijk uw vraag?
Gij wilt een teken laten zakken tot 10 regels? Dat slaat toch op niks??

Ik zal dan maar een antwoord geven zoals ik DENK dat gij bedoelt:

Code:
void f()
{
    for(int i = 1; i <= 10; ++i
    {
        system("cls"); //maak het scherm terug leeg
        for(int j = 1; j < i; ++j)
            printf("\n");
        printf("UWTEKEN");
    }
}
Bovenstaande code zal eerst ne tekst uitprinten op de 1e regel van uw console.
Dan alles terug wegdoen en printen op de 2e regel. Dan de 3e regel enzovoort...

Ist ni simpeler om het teken gwn af te drukken na de forlus? :p

Code:
void f()
{
    for(int i = 1; i <= 10; ++i
    {
            printf("\n");
    }

    printf("UWTEKEN");
}

Krueger

Legacy Member
MorGo7h zei:
Ist ni simpeler om het teken gwn af te drukken na de forlus? :p

Code:
void f()
{
    for(int i = 1; i <= 10; ++i
    {
            printf("\n");
    }

    printf("UWTEKEN");
}
Dat geeft niet hetzelfde effect. Bij jou gaat het teken 1 maal verschijnen op de laatste regel. Bij de eerste code zal het teken 10 keer verschijnen, telkens een regel lager.

MorGo7h

Legacy Member
mattias112 zei:
hey,
ik wil een heel simpel functietje make waar ik een teken laat zakken tot 10 regels, ik doe dit, zoals iedereen zou doen wss met een for loop, maar ik krijg op de 10 regels allemaal het teken, dit kan ik voorkomen denk ik door het teken te schrijven, dan endl; , en daarna het tekentje op de eerste lijn terug te verwijderen, maar hoe doe ik dit?
dank

Dit komt omdat uw teken ook afgeprint wordt in uw lus. Zorgen dat het teken pas na de enter wordt afgedrukt, dus gewoon die printlijn buiten uw luske zetten.
Zie vb hier boven.

MorGo7h

Legacy Member
Krueger zei:
Dat geeft niet hetzelfde effect. Bij jou gaat het teken 1 maal verschijnen op de laatste regel. Bij de eerste code zal het teken 10 keer verschijnen, telkens een regel lager.
Dat vraagt TS toch? Want nu krijgt het teken op iedere lijn zegt ie.

Gurdt

Legacy Member
Nein, hij stelt zijn zinnen wel heel buitenlands op natuurlijk maar hij zegt ook: ik zou het kunnen oplossen door het geplaatste karakter op de vorige regel weg te doen, maar weet niet hoe.

Dus het karakter zal wel degelijk moeten "zakken" dus lijn per lijn naar onder gaan :)

Joeshoe

Legacy Member
Uh dat is met een simpele lus toch niet echt doenbaar? Hij wilt dus een teken op lijn 1 laten beginnen en dat stap per stap naar beneden bewegen als ik het goed begrijp.
Een for/while lus gaat gewoon zo snel mogelijk de lus aflopen, té snel om te zien. Je gaat al met stappen per 1000 of zo (afhankelijk van de snelheid van de pc) moeten werken om dit lijn per lijn waar te nemen.

Nu, als je dit zo wil doen kun je met een clearscreen werken.
Eerst de eerste lijn tekenen, dan een clearscreen, dan de tweede lijn, terug clearscreen, etc.

Om clearscreen te gebruiken:

#include <stdlib.h>
system ("cls");

Gurdt

Legacy Member
Of ge werkt met een sleep he Sherlock (die cls staat er trouwens al).

Ik ken een kerel die iets deed in de vorm van for(int i = 1; i <= 600502323870273027; ++i) om zijn programma 6 seconden te laten wachten.
Zelfs Indiërs doen zoiets niet :')

Ik ken de juiste syntax en libraries niet maar je kan zoiets gebruiken als sleep(1000) om je programma 1 seconde te laten wachten.

Een andere manier is om met een timer te werken die om de seconde een timeout zet ofzo. Opties genoeg dus!

MorGo7h

Legacy Member
Gurdt zei:
Nein, hij stelt zijn zinnen wel heel buitenlands op natuurlijk maar hij zegt ook: ik zou het kunnen oplossen door het geplaatste karakter op de vorige regel weg te doen, maar weet niet hoe.

Dus het karakter zal wel degelijk moeten "zakken" dus lijn per lijn naar onder gaan :)

allright, wa nutteloos lijkt me die oef :p

mattias112

Legacy Member
haha sorry mannen dat mijn vraag niet echt duidelijk was. maar wat gurdt zei bedoelde ik eigenlijk, iki zal zijn programmatje sewens eens proberen
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan