Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    99

    eof con windows xp

    Salve, sto facendo degli esercizi con i file, e mi servirebbe sapere la combinzaione di tasti per immettere il carattere di terminazione file (EOF) sotto windows xp, purtroppo so che è ctrl+z ma quando la inserisco mi esce scritto Z^, e quindi non funziona, l'eof non viene messo nel file e per chiuderlo devo digitare ctrl+c, ma così facendo quando leggo dal file creato con l'istruzione while(!feof(stdin)) mi va in loop tutto perchè non cè l'eof, sapete aiutarmi??Per info uso il dev-c++ come compilatore.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non e' molto chiaro quello che dici ma hai pressato Invio dopo Ctrl-Z ?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    99
    Come non è molto chiaro , è semplicissimo, creo 1 file sequenziale e termino di scrivergli dentro quando gli do eof, che in teoria sotto windows dovrebbe essere dato dalla combinazione di ctrl+z, ma invece tale combinazionemi scrivi a video z^ e continua a chiedermi di inserire da input, in pratica non mi fà terminare il file, e quando poi voglio leggere dal file e non trovo giustamente eof allora mi và tutto in loop, allego i 2 file per comodità:

    SCRITTURA:

    #include <stdio.h>
    #include <stdlib.h>

    int main(void)
    {
    FILE * fptr;
    char parola[30];
    int valore;

    if((fptr = fopen("dati.dat","w")) == NULL)
    printf("file non aperto!!\n");
    else{
    printf("Inserisci parole e numero : ");
    scanf("%s%d",parola, &valore);

    while(!feof(stdin))
    {
    fprintf(fptr, "%s %d\n", parola, valore);
    printf("Inserisci parole e numero : ");
    scanf("%s%d",parola, &valore);
    }
    }

    fclose(fptr);
    return 0;
    }

    LETTURA:

    #include <stdio.h>
    #include <stdlib.h>

    int main(void)
    {

    FILE * fptr;
    char parola[30];
    int valore;

    if((fptr = fopen("dati.dat","r")) == NULL)
    printf("File non aperto\n");
    else{
    fscanf(fptr, "%s%d", parola, &valore);
    printf("Parola: %s \n Valore: %d", parola, valore);
    while(!feof(stdin))
    {
    fscanf(fptr, "%s%d", parola, &valore);
    printf("Parola: %s \n Valore: %d", parola, valore);
    }
    }

    fclose(fptr);

    return 0;
    }


    notate che sotto windows non riesco a dare l'eof, ed il file non viene terminato, e quando lo apro in lettura essendo sequenziale devo scorrerlo tutto finchè non trova eof, ma non ci stà e quindi la lettura va in loop, è + chiaro adesso??semplice semplice

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.