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
}