1

Тема: Що відбувається в функції void clrscr(int size)?

Є код:

#include <iostream>
using namespace std;

void clrscr(int size = 25);

int main()
{
    
    setlocale(LC_CTYPE, "ukr");
    
    int i;

    for (i = 0; i < 30; i++) cout << i << '\n';
    clrscr(); // Очищаємо 25 рядків.

    for (i = 0; i < 30; i++) cout << i << '\n';
    clrscr(10); // Очищаємо 10 рядків.

    getchar();
}

void clrscr(int size)
{
    for (; size; size--) cout << '\n';
}

Не можу зрозуміти, що робить даний код:

void clrscr(int size)
{
    for (; size; size--) cout << '\n';
}

2

Re: Що відбувається в функції void clrscr(int size)?

Виводить 25 нових рядків. В старих консолях кількість рядків була обмежена екраном, а стандартний розмір був 25x80, тому 25 нових рядків очищували екран. Не робіть так.

3

Re: Що відбувається в функції void clrscr(int size)?

Я розумію, що програма робить, але не розумію, що робить даний цикл

for (; size; size--) cout << '\n';

4

Re: Що відбувається в функції void clrscr(int size)?

for(початкове значення ; умова циклу ; крок)
Так як "початкове значення" у вашому випадку передається через аргумент, то в умові циклу воно опущене.

5

Re: Що відбувається в функції void clrscr(int size)?

nicoliafox написав:

Я розумію, що програма робить, але не розумію, що робить даний цикл

for (; size; size--) cout << '\n';
for(a;b;c){d;}

(майже)еквівалентний

a;
while(b){
  d;
  c;
}

Тепер розумієте, що відбувається?

Подякували: nicoliafox1