PDA

View Full Version : [C++] Creazione e scrittura su file


Fiero
23-06-2005, 16:20
Il mio problema è semplice: voglio creare un file di testo e scriverci qualcosa.
Per cominciare vorrei scrivere un int. Il mio problema è che mi crea il file (lo ritrovo vuoto nella directory) ma poi il compilatore mi dà errore ed esce.
Dove sbaglio?

#include <stdio.h>
int numero;
main()
{
FILE *fp;

fp=fopen("O:\\INFO_filetxt\\prova_file2.txt","w");

if (fp=NULL) printf("Errore apertura file");

else
{
numero=fputc('5',fp);
}

fclose(fp);
}

Ho rpovato anche ad inserire un array di interi ma il compilatore esce sempre subito dopo aver creato il file.

#include <stdio.h>
#include <string.h>

int i;
char buffer[5];

main()
{FILE *fp;

for(i=0;i<5;i++)
{
printf("Inserisci un numero intero"); scanf("%d",&buffer[i]);
}
fp=fopen("O:\\INFO_filetxt\\prova_file3.txt","w");
if (fp=NULL) printf("Errore apertura file");
else
{
fwrite(buffer,sizeof(char),strlen(buffer),fp);
}
fclose(fp);
}

In entrambi i casi il debugger non mi scrive nulla.


Grazie in anticipo per i consigli! ;)

tglman
23-06-2005, 16:35
Non potevi fare errore più banale:

if (fp=NULL) printf("Errore apertura file");

la condizione è una assegnazione e sara sempre vera!!!

e cosi:
if (fp==NULL) printf("Errore apertura file");

tglman
23-06-2005, 16:40
Comunque non ti preoccupare ha volte questi errori li fanno anche programmatori con ANNI di esperienza

Fiero
23-06-2005, 16:46
Non potevi fare errore più banale:

if (fp=NULL) printf("Errore apertura file");

la condizione è una assegnazione e sara sempre vera!!!

e cosi:
if (fp==NULL) printf("Errore apertura file");

Cazzarola è vero: mamma mia che pistola che sono...
:D :D :D :doh:

Beh, meno male: pensavo di non aver capito nulla sulla gestione dei file! :p :mc:


Grazie ancora ;)

Fiero
23-06-2005, 16:50
Comunque non ti preoccupare ha volte questi errori li fanno anche programmatori con ANNI di esperienza

Probabilmente perchè si presta la massima attenzione sui punti 'caldi' del codice ma qualcosa scappa nei passaggi che si considerano banali... Purtroppo sti PC non sono molto svegli e non capiscono al volo la magagna! :D :D