View Full Version : [C] EOF su Windows 7 compilando con Dev C++
masterkarray
12-12-2010, 13:31
Salve a tutti, spero solo sia la sezione corretta e la domanda sia lecita. Sono un principiante in materia per cui non linciatemi se la domanda è banale/stupida :)
Dunque io ho compilato un programma dal libro K&R (Il Linguaggio C) in cui è coinvolto anche l'utilizzo dell'EOF. In passato ho compilato in ambiente Ubuntu con il GCC dalla Shell, lì andava bene e l'EOF avente valore -1 corrispondeva alla combinazione di tasti CTRL+D (se non ricordo male).
Ora volevo sapere, qual'è la corrispondente combinazione in Windows (compilo con Dev C++ che mi crea gli gli eseguibili windows, .exe) per generare un corretto EOF?
Vi ringrazio in anticipo per l'attenzione :) Attendo risposte :D
masterkarray
12-12-2010, 15:29
Grazie per la risposta, tuttavia a me non funziona come hai detto (quando premo CTRL+Z semplicemente stampa a schermo "^Z").
Scrivendo una piccola procedura per scovare questo EOF, ho scoperto che da me corrisponde alla combinazione CTRL+C, non ne saprei il motivo ma è così.
Tuttavia, scrivendo ancora un'altra procedura ho scoperto un'altra cosa: CTRL+Z me lo prende come EOF ma con CTRL+C mi chiude direttamente la finestra dell'eseguibile su cui sto lavorando. Appena riesco posto i codici delle mie procedure spiegando meglio e nel dettaglio cosa e come succede (so di essere stato molto confusionario adesso).
Magari qualcuno con più esperienza di me ha già capito cosa succede e può aiutare me a capirci meglio? Ringrazio in anticipo :)
masterkarray
12-12-2010, 21:52
Ti ringrazio molto, hai chiarito i miei dubbi ora. Ho anche scritto una piccola procedura che, funzionando correttamente, riconosce il EOF (CTRL+Z).
Tuttavia è possibile che con CTRL+C, subito prima di mandare il segnale di KILL ne mandi anche uno di EOF?
Questo è il codice della procedura funzionante, che riconosce correttamente CTRL+Z come EOF. Tuttavia, se premo CTRL+C, subito prima di chiudere la finestra(quasi in contemporanea alla chiusura a dire la verità, per cui è anche difficile da notare) appare il messaggio che dovrebbe apparire nel caso di corretto riconoscimento di EOF. Se il segnale di KILL manda anche un EOF i miei dubbi terminano qui. Ma potrebbe anche essere che la procedura sia sbagliata :)
Ecco qui il codice:
#include <stdio.h>
#include <unistd.h>
main(){
printf("Immettere combinazione di tasti che si presume corrisponda a EOF e premere invio\n");
while (getchar() != EOF ){
printf("Riprovare: se la finestra si chiude dopo la prossima combinazione di tasti allora è stato immesso EOF\n");
}
printf("La combinazione di tasti appena immessa corrisponde a EOF\nLa finestra si chiuderà automaticamente entro 5 secondi.");
sleep(6000);
}
Se vuoi puoi velocemente provare a compilarlo e a provarlo, dicendomi i tuoi risultati :) Grazie ancora.
Th4N4Th0S
08-10-2011, 12:22
so che è un post del 2010 ma per chi avesse lo stesso problema a me mi è bastato fare cosi: "control"+z e subito dopo premere INVIO, xò deve stare accapo il ^z.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.