C++ Programming
#include <stdio.h>
int main()
{
int a;
a = getchar();
while (a != EOF)
{
putchar(a);
a = getchar();
}
}
P.S sinceramente non capisco perche il libro dica di definire a = getchar(); due volte... funziona benissimo anche facendolo una sola volta, ma speriamo un aiuto da parte di Digger o Skyline.. vabbè, sorvoliamo.
[/quote]
semplice, il programma così configurato prosegue nel seguente modo:
"int a;" -> dichiara la variabile a, quindi viene riservato spazio in ram per quella variabile;
"a = getchar();" -> aspetta che l'utente prema un tasto e assegna il valore del tasto ad 'a';
il ciclo controlla che non sia "return", cioè invio o in breve EOF e lo stampa a video, e dopo dinuovo aspetta che premi un tasto, riassegna ad a il nuovo valore e torna a controlloare se è EOF:
se non lo è, ristampa a video il valore e aspetta un nuovo tasto premuto;
se lo è se finisce il cicle e salta a dopo la parentesi graffa di chiusura, ma non essendoci nessun'altra istruizione il programma termina e si chiude.
Se lo metti una sola volta funziona ma solo se lasci quello fuori dal ciclo, cioè il primo, altrimenti il compilatore ti darà un errore perchè nel ciclo controlli il valore di a, valore che non ha, perchè non glielo hai mai assegnato.
Invece nell'ultimo esempio che hai fatto funzione perchè l'assegnazione avviene durante il ciclo, e questo prima di controllare a le assegna il valore
Mi merito un +1?