manalog
2017-04-25 17:36:29 UTC
Ciao a tutti,
non so se vi ricordate di me, avevo scritto qualche tempo fa chiedendo
consigli su un libro per iniziare a programmare in C.
Ho letto il primo capitolo del K&R ed eseguito quasi tutti gli esercizi.
Causa impegni ho sospeso per quasi un mese e ho già dimenticato diverse
cose; prima di proseguire volevo riprendere l'allenamento scrivendo dei
programmini semplici ma mi sono subito arenato con un problema
sicuramente idiota.
Voglio mandare il testo riga per riga ad una funzione mediante l'array
riga[] tuttavia per non avere array enormi e inutili "contatori" ho
pensato di cancellare lo stesso array ogni volta e riscriverci la riga
partendo dall'inizio.
Il codice è questo:
"
while ((c = getchar()) != EOF) {
if (c != '\n') {
riga[n] = c;
n++;
}
else
elabora(riga, n, elaborato);
for (i = 0; i <= n; i++)
riga[i] = ' ';
}
"
La mia idea sarebbe che, in caso di c == '\n', venga PRIMA eseguita la
funzione elabora e POI azzerato l'array. Succede invece il contrario:
prima mi si azzera l'array e poi quello viene elaborato.
Cosa sbaglio?
Scusate il livello basico basico della domanda :D
Matteo.
non so se vi ricordate di me, avevo scritto qualche tempo fa chiedendo
consigli su un libro per iniziare a programmare in C.
Ho letto il primo capitolo del K&R ed eseguito quasi tutti gli esercizi.
Causa impegni ho sospeso per quasi un mese e ho già dimenticato diverse
cose; prima di proseguire volevo riprendere l'allenamento scrivendo dei
programmini semplici ma mi sono subito arenato con un problema
sicuramente idiota.
Voglio mandare il testo riga per riga ad una funzione mediante l'array
riga[] tuttavia per non avere array enormi e inutili "contatori" ho
pensato di cancellare lo stesso array ogni volta e riscriverci la riga
partendo dall'inizio.
Il codice è questo:
"
while ((c = getchar()) != EOF) {
if (c != '\n') {
riga[n] = c;
n++;
}
else
elabora(riga, n, elaborato);
for (i = 0; i <= n; i++)
riga[i] = ' ';
}
"
La mia idea sarebbe che, in caso di c == '\n', venga PRIMA eseguita la
funzione elabora e POI azzerato l'array. Succede invece il contrario:
prima mi si azzera l'array e poi quello viene elaborato.
Cosa sbaglio?
Scusate il livello basico basico della domanda :D
Matteo.