Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Salve a tutti sto iniziando a studiare il C ho appena acquistato il libro di K&R e pur conoscendo l'informatica teorica (cicli,variabili,funzioni, ecc) leggendo attentamente il libro mi sono fermato a questi esercizi:
1.6 Si verifichi che l' espressione getchar() != EOF abbia valore 0 o1 ho scritto questo:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
long c;
while ((c = getchar()) != EOF){
printf("%1d\n",(getchar()!= EOF));
printf("%d\n", EOF);
}
return 0;
}
Il problema qua è che EOF vale -1 è giusto??
Scusate la banalità del post ma non posso sapere se quello che ho scritto è giusto non conoscendo affatto il reale valore di EOF nel libro non c'è scritto
Ultima modifica di Plaoo il gio 6 nov 2008, 18:27, modificato 1 volta in totale.
Il canale ufficiale di slacky.eu si trova sui server irc.syrolnet.org canale #slackware
Plaoo ha scritto:Salve a tutti sto iniziando a studiare il C ho appena acquistato il libro di K&R e pur conoscendo l'informatica teorica (cicli,variabili,funzioni, ecc) leggendo attentamente il libro mi sono fermato a questi esercizi:
1.6 Si verifichi che l' espressione getchar() != EOF abbia valore 0 o1 ho scritto questo:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
long c;
while ((c = getchar()) != EOF){
printf("%1d\n",(getchar()!= EOF));
printf("%d\n", EOF);
}
return 0;
}
Il problema qua è che EOF vale -1 è giusto??
Scusate la banalità del post ma non posso sapere se quello che ho scritto è giusto non conoscendo affatto il reale valore di EOF nel libro non c'è scritto
visto che includi stdio.h
leggiti
/usr/include/stdio.h
Intanto direi che usare una variabile di tipo long per i caratteri è un tantino esagerato...
puoi usare al massimo int... comunque è meglio se usi char...
Per stampare il valore di EOF ti bastava fare:
#include <stdio.h> //Necessario per la printf
int main()
{
printf("%d\n", EOF);
return 0; //Se la funzione ha un tipo di ritorno non puoi dimenticarti la return
}
Hai dimenticato anche le return e %d è solo per interi... per i long è %ld se non sbaglio, mentre per i caratteri %c...
paolo86 ha scritto:Intanto direi che usare una variabile di tipo long per i caratteri è un tantino esagerato...
puoi usare al massimo int... comunque è meglio se usi char...
Per stampare il valore di EOF ti bastava fare:
#include <stdio.h> //Necessario per la printf
int main()
{
printf("%d\n", EOF);
return 0; //Se la funzione ha un tipo di ritorno non puoi dimenticarti la return
}
Hai dimenticato anche le return e %d è solo per interi... per i long è %ld se non sbaglio, mentre per i caratteri %c...
Ciao!!
E' questo l'ho fatto ma mi sembrava strano che il valore di EOF sia -1
.../* Se vuoi terminare, inviando EOF, premi Ctrl-d */...
Sapevo che EOF era Ctrl-Z.
Comunque grazie a tutti quelli che mi hanno aiutato, praticamente facevo le cose giuste (non ho postato tutte le prove che ho fatto) mi siete serviti per controllare il mio lavoro grazie ancora
Il canale ufficiale di slacky.eu si trova sui server irc.syrolnet.org canale #slackware