Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197

    [c++] testare se un puntatore ad un file è null

    ho questo codice
    codice:
    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        char name[100];
        int age;
        char nameFromFile[100];
        int ageFromFile;
    
        FILE * myFile;    //puntatore al file
    
        fprintf(stdout,"Inserisci il tuo nome e la tua eta\n");
        fscanf(stdin,"%s%d",name,&age);
    
        myFile = fopen("test.txt","w");
    
        if(myFile == NULL)
        {
            fprintf(stdout,"ATTENZIONE: file non valido\n");
            exit(1);
        }
    
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    nella cartella dell'aplicazione non ho nessun file di testo("test.txt") mi aspetto quindi che entri nel blocco "if" e mi segnali l'errore come invece non succede nulla, dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [c++] testare se un puntatore ad un file è null

    Originariamente inviato da afrappe
    ho questo codice
    codice:
        myFile = fopen("test.txt","w"); // <--
    
        if(myFile == NULL)
        {
            fprintf(stdout,"ATTENZIONE: file non valido\n");
            exit(1);
        }
    Sei davvero sicuro che il file non venga creato? Il modificato "w" lo crea a prescindere il file. E se il file già esiste lo tronca.

  3. #3
    w write text mode (truncates file to zero length or creates new file)
    La fopen in modalità testo in scrittura "w", cancella il contenuto del file o ne crea uno nuovo, se non esiste già.

    Con l'istruzione :
    codice:
    if(myFile == NULL)
    Verifichi se il file sia effettivamente stato creato (salvo spazio su disco sufficiente, nome del file corretto, etcc.)
    Il controllo come lo intendevi tu si applica (ed a senso) solo per i file in modalità lettura.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  4. #4
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    effettivamente avete ragione, il file viene creato a prescindere.
    Cmq ho tolto i permessi di scrittura alla cartella ed in quel caso entra nel blocco if come mi aspettavo
    kiarito l'arcano. Grazie a tutti

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 © 2025 vBulletin Solutions, Inc. All rights reserved.