Un programma C senza un valore di ritorno comporta un comportamento non definito (che è considerato unanimemente una brutta cosa ©). Il compilatore ha il permesso di entrare liberamente in ciò che ritorna qui, sembra che stia restituendo il risultato di scanf() ma potrebbe restituire un po 'di entropia atmosferica per tutte le cure C standard.
Per quanto riguarda la linea che non stampa, è perché si sta usando printf() su un terminale bufferizzato, si vorrà aggiungere \ n alla fine. La ragione di ciò riconduce agli antichi metodi Unix che sono stati da tempo dimenticati da tutti tranne i sagaci guru di Unix.
Per quanto accade fino a quando non si inserisce qualcosa, è perché i blocchi scanf() fino a quando non viene ricevuto un input, nel caso in cui non si fosse già a conoscenza di ciò. È possibile utilizzare chiamate di IO non bloccanti, ma non sono sicuro se ciò rientra nella portata della domanda. (si prega di definire "fai questo").
fonte
2012-02-02 17:38:35
un buon libro C sarebbe un buon punto di partenza ... – Nim
Ho questo problema, il tuo problema risolto? –