Ciao a tutti!
Sono una principiante e sto cercando di imparare qualche base del linguaggio C.
Il mio problema è il seguente: ho un programma che effettua vari controlli. Uno di questi utilizza appunto una variabile:

   esito = scanf("%d", &numero);

   if (esito != 1)
      printf("Lettura non riuscita\n");

Non riesco a capire cosa faccia la variabile "esito".
Spero di essere stata abbastanza chiara :)

chiesto 13 Gen '15, 19:39

miriaspazzol's gravatar image

miriaspazzol
15137

modificato 13 Gen '15, 20:07

enzotib's gravatar image

enzotib ♦♦
14.0k112186


Come riportato dalla documentazione la funzione scanf ritorna un int pari al numero di argomenti letti oppure minore se incontra errori.

La tua variabile esito quindi può assumere valore 1 se %d (l'unico argomento che c'è) è stato letto correttamente, oppure un altro valore. Se assume un altro valore vuol dire che c'è stato qualcosa di sbagliato nella lettura.

Puoi accorciare il codice con

if (scanf("%d", &numero) != 1) {
      printf("Lettura non riuscita\n");
}

È sempre buona abitudine mettere le parentesti graffe, anche se solo per un'istruzione :-)

coll. permanente

ha risposto 13 Gen '15, 20:00

rpadovani's gravatar image

rpadovani ♦♦
3.1k51351

Grazie mille!

(13 Gen '15, 21:25) miriaspazzol miriaspazzol's gravatar image

@miriaspazzol: non usare le risposte, usa i commenti.

(13 Gen '15, 22:18) enzotib ♦♦ enzotib's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×272

domanda posta: 13 Gen '15, 19:39

domanda visualizzata: 519 volte

ultimo aggiornamento: 13 Gen '15, 22:18

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.