for (int i = 32; i < 256; i += 4)
Z każdym obiegiem pętli zwiększasz zmienną " i " o 4 więc pokazuje się co 4. Zmienisz na 2 to będzie co 2, dasz po prostu i++ to będzie wywalało wszystkie. Nie pojmuję czego nie rozumiesz.
PS. kod się nie skompiluje, prawdopodobnie poprawiles go u siebie po wklejeniu tutaj dlatego Ci sie skompilowal.
getch();
return 0;
powinny byc nad ostatnią klamerką, a tutaj
cout<<char(i)" "<<i;
zjadłeś << po char(i).
Co do Twojej pętli zagnieżdżonej to jest ona bez sensu kompletnie, po pierwsze nie jest ona potrzebna do zrealizowania tego zadania (przynajmniej wg treści owego zadania, którą przedstawiłeś, a po drugie jest zrealizowana tak, że zawsze wykona się raz przy każdym obiegu pętli wyżej. Wypisując znaki odwołujesz się do zmiennej i, którą jak wspomniałem zwiększasz o 4 z każdym obiegiem, stąd co czwarty znak jest wypisywany.
Możesz pozornie znaleźć zastosowanie dla zagnieżdżonej pętli, chociaż nikt normalnie by tak tego pewnie nie robił:
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
int main()
{
for (int i = 32; i < 256; i += 4) // pętla for która zwraca liczby w przedziale od 32 do 256;
{
for (int a = i; a < i+4; ++a) //pętla for zagnieżdżona która ma wypisać tablicę ansi;
{
cout<<a<<" "<<char(a)<<" ";
}
cout<<endl;
}
getch();
return 0;
}
W takim przypadku używasz pętli zagnieżdżonej do wypisywania linijki (4 pozycji) a potem dajesz endl;, główna pętla przesuwa zmienną o 4. Takie zastosowanie na siłę.