PDA

Visualizza la versione completa : [C] Visualizzare ciò che si scrive


Frankenstein88
13-10-2006, 18:06
ho iniziato ieri a studiare il C, leggendo la guida che c'è nel sito, e sto provando questo script:


#include <stdio.h>

main()
{
int ch, i = 0;

while((ch = getchar()) != EOF)
i ++;

printf("%dn", i);
}

questo dovrebbe visualizzare quello che scrivo con la tastiera, e in effetti lo fa. In oltre premento ctrl+D il programma si dovrebbe interrompere (cosi c'è scritto nella guida) ma questo non lo fa :confused:

poi... ho ridotto il programma a questo

#include <stdio.h>

main() {
getchar();
}
e funziona allo stesso modo :dottò: mi pare un po' strano... qualcuno mi può aiutare? In fin dei conti sono solo all'inizio e questa probabilmente per voi è una domanda banale :D

oregon
13-10-2006, 18:09
Che vuol dire "hai ridotto il programma" ?

Sono due programmi (non script) diversi !

Frankenstein88
13-10-2006, 18:14
nel senso che togliendo un po' di cose (per vedere cosa succedeva) il risultato è lo stesso

oregon
13-10-2006, 18:16
Mi pare di no ... il primo visualizza un risultato con l'ultima istruzione, il secondo no!

Come e' possibile che il programma faccia le stesse cose, se il primo ha istruzioni e variabili in piu'?

Frankenstein88
13-10-2006, 18:28
è quello ke sto cercando di capire.

Teoricamente il primo visualizza quante volte ho premuto un tasto, invece mi visualizza quello ke scrivo... e lo stesso il secondo :bhò:

oregon
13-10-2006, 19:17
Devi pressare Ctrl-Z seguito da Return per interrompere ...

P.S. In questa riga

printf("%dn", i);

manca il backslash ... deve essere

printf("%d\n", i);

MItaly
13-10-2006, 19:57
Originariamente inviato da oregon
Mi pare di no ... il primo visualizza un risultato con l'ultima istruzione, il secondo no!

Come e' possibile che il programma faccia le stesse cose, se il primo ha istruzioni e variabili in piu'?
Secondo me non ha ricompilato... :)

Xaratroom
13-10-2006, 20:52
Senza dubbio...
Il primo legge fino ad un carattere e restituisce il numero di battute
Il secondo blocca il prog fino all'inserimento di un carattere

Frankenstein88
14-10-2006, 00:47
ovvio che ho ricompilato :zizi:


Devi pressare Ctrl-Z seguito da Return per interrompere ...

P.S. In questa riga

printf("%dn", i);

manca il backslash ... deve essere

printf("%d\n", i);
grazie mille

resta il fatto che il programma non fa quello che dovrebbe fare :berto:

in più:


#include <ctype.h>
#include <stdio.h>
main()
{
int ch;

while((ch = getchar()) != EOF)
putchar(toupper(ch));
}

questo dovrebbe visualizzare quello che digito scritto in maiuscolo, però non lo fa... comincio a pensare di non essere fortunato con questo linguaggio :master:

oregon
14-10-2006, 01:11
Originariamente inviato da Frankenstein88
resta il fatto che il programma non fa quello che dovrebbe fare :berto:

Ma che vuol dire "non fa quello che dovrebbe fare" ??? :confused:


Originariamente inviato da Frankenstein88
questo dovrebbe visualizzare quello che digito scritto in maiuscolo, però non lo fa...

Non quello che digiti carattere per carattere ma la frase che inserisci e una volta che hai pressato il return ...

Loading