ciao a tutti.
qualche tempo fa ho compilato, copiandolo di sana pianta dal vostro forum un programma per spegnere il computer che usa shutdown. il programma ha funzionato bene da subito, poi però mi è passato per la testa di di compilarne anche un altro praticamente identico, l'unica differenza stava nel diverso computo dei secondi per il conto alla rovescia che precede lo spegnimento. con mia grande meraviglia questo nuovo programma non funzionava (nonostante il devcpp non mi segnalasse alcun errore). solo per caso ho scoperto che il nuovo programma contente shutdown funzionava soltanto dopo aver cancellato il primo programma contenente shutdown.
una cosa quasi identica mi è successa ieri: prima ho compilato un programma che consente di immettere dei dati utilizzando l'operatore cin>> , poi (e voi sapete molto meglio di me che l'operatore cin>> consente di inserire solamente stringhe prive di segni di spaziatura) ho compilato un programma identito che utilizzava, al posto di cin>>, la funzione gets() . il programma funzionava ma non come avrebbe dovuto: nonostante stessi usando gets (con tanto di file di intestazione) la stringa che inserivo si interrompeva al primo segno di spaziatura (neanche stessi usando cin>> !!!). anche in questo caso, dopo mille tentativi, ho eliminato da "documenti" il programma (sia il sorgente sia l'oggetto) che utilizzava cin>> e quello con gets() ha cominciato a funzionare regolarmente.
qualcuno sa gentilmente dirmi perchè ciò avviene? e poi perchè certi "contrasti" avvengono solo con determinati tipi di programmi e non con tutti quelli che (ormai sono un bel po') ho in memoria.
spero di essermi spiegato con chiarezza a dispetto della mia povertà di linguaggio.
grazie mille.
|