Come si scrive su file?

di il
37 risposte

Come si scrive su file?

Ciao a tutti, sto cercando di capire come aprire i file con c (usando code::blocks !) ma sembra ci sia un problema nell'apertura del file.
Ho provato i seguenti codici:
#include <stdio.h>

int main(){
FILE *fp;
fp=fopen("prova2.txt","w");
//testo
if(fp==NULL){
        return -1;}
fprintf(fp,"prova, prova, passo.");
fclose(fp);
}
#include <stdio.h>
#include <stdlib.h>

int main(){
FILE* fp;
float temperatura=23.50;
char nomecitta[10]="Parigi";
fp=fopen("prova3.txt","a+");
if(fp)
{
printf("file aperto correttamente");
fprintf(fp,"Citta': %s \t %.2f",nomecitta,temperatura);
printf("scrittura OK");
}
else{
printf("Errore su file..");
}
fclose(fp);

return 0;}
#include <stdio.h>

int main(int argc, const char * argv[]){

FILE* f;
char riga[50];
f=fopen("prova1.txt","r");
if(f==NULL){
    printf("file non aperto correttamente");
    return 1;

while(!feof(f)){
fgets(riga,50,f);
printf("%s",riga);
}

}



fclose(f);

return 0;
}
Tutti danno problemi all'apertura, potete aiutarmi?

37 Risposte

  • Re: Come si scrive su file?

    "Problemi" è un po' generico ... devi essere più chiaro.

    Ad esempio, il primo funziona regolarmente quindi dovresti chiarire ...
  • Re: Come si scrive su file?

    In nessuno dei 3 casi il file viene aperto. (dopo fopen è ==NULL)
  • Re: Come si scrive su file?

    Ho provato per scrupolo il primo codice e funziona regolarmente, come il secondo.

    Nel terzo mi sembra che la if non sia chiusa correttamente dopo la return

    In quale cartella è contenuto il progetto e l'eseguibile?
  • Re: Come si scrive su file?

    Il progetto si trova in una cartella su desktop, il file non esiste, dovrebbe essere creato dal programma. Se provo a eseguire lo stesso codice che hai provato tu a me ritorna -1, quindi non viene aperto il file. Tu hai il mac? Perchè credo sia un problema di code::blocks su windows
  • Re: Come si scrive su file?

    No ... ma che mac ... io uso windows con Visual Studio ma non ho problemi neanche con Code Blocks (che poi è un IDE ...). Quale compilatore è installato con Code Blocks?
  • Re: Come si scrive su file?

    Credo GNU GCC compiler
  • Re: Come si scrive su file?

    Prova a usare un path assoluto per il file, ad esempio

    "C:\\Temp\\prova2.txt"

    e controlla all'interno della cartella indicata (che ovviamente deve esistere)
  • Re: Come si scrive su file?

    Non è cambiato niente, il file non viene aperto correttamente
  • Re: Come si scrive su file?

    Ma tu crei un progetto di tipo Console Application?
  • Re: Come si scrive su file?

    Ho cliccato semplicemente new>empty file.
    Per codici che non coinvolgono file sembra non dare problemi
  • Re: Come si scrive su file?

    Anche così, se usi un path assoluto come C:\\temp\\prova2.txt il programma funziona. Anche se ti consiglio di usare sempre un progetto.

    Quale versione di CB e GCC utilizzi?
  • Re: Come si scrive su file?

    Non so quale sia precisamente la differenza tra empty file e un progetto, ma a me i codici non funzionano neanchè col path.
    Come posso vedere quali CB e GCC utilizzo?
  • Re: Come si scrive su file?

    Per CB lo vedi quando lo apri ...

    Comunque inserisci la riga

    printf("%d\n", errno);

    dopo la fopen e vedi che numero viene visualizzato
  • Re: Come si scrive su file?

    Esce il numero 2.
    Il CB dovrebbe essere 20.03
Devi accedere o registrarti per scrivere nel forum
37 risposte