No perchè, come ti ho già detto, i viene incrementata alla fine del ciclo, quindi la prima volta vale 0 (il valore a cui l'hai inizializzata).
codice:int i = 0; while (i < n) { cout << i << endl; ++i; // l'incremento è come se avvenisse alla fine del ciclo while corrispondente }