Secondo me in queste poche righe hai commesso più di un errore...
1)
codice:
if(fp=fopen("c:\\Giuliano il comunista.txt","w")==NULL)
il risultato dell'espressione per l'IF è falso, quindi non esegue la printf() con il messaggio di errore. Al puntatore "fp" però viene assegnato un valore NULL per cui quando la funzione fputs() prova a scrivere nel file è destinata a fallire.
2)
Per come hai scritto il programma devi fare in modo che la scrittura avvenga solo se il risultato dell'if è falso, quindi fputs() lo devi mettere nel blocco "else", altrimenti viene eseguito sempre anche se l'apertura del file è fallita.
3)
Come già segnalato da Celtico94 devi fare attenzione a dove crei il file, perchè i moderni sistemi operativi sono piuttosto rigidi in questo. Crea almeno una cartella in C e scrivi in quella cartella.
prova a scriverlo così, creando la cartella prima perchè fopen() non te la crea automaticamente:
codice:
#include <stdio.h>
int main()
{
FILE *fp;
char *str = "Giuliano mangia i bambini";
fp=fopen("c:\\cartella\\Giuliano il comunista.txt","w");
if(fp==NULL){
printf("error fopen");
}
else{
fputs(str,fp);
fclose(fp);
}
return 0;
}
L'if potresti scriverla anche così:
codice:
if(fp=fopen("c:\\Giuliano il comunista.txt","w")){
fputs(str,fp);
fclose(fp);
}
else{
printf("error fopen");
}