Non utilizzo il C da tempo.
Stavo facendo un programma in cui leggo il contenuto di un file, chiamiamolo file.txt, poi creo un altro file, nuovo_file.txt e metto dentro il contenuto del primo file nel secondo.
Non capisco perche' mi da' warning nella funzione creat (e' sbagliata ?), dove mi dice:
[Warning] assignment makes pointer from integer without a cast
E mi da' errori sulla fputs, quando provo a scrivere nel secondo file la stringa letta nel primo
codice:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char *strcat(char *str1, const char *str2);
main()
{
FILE *fp, *fp1;
char ch, filename[40], mode[4];
char stringa[80];
int n;
int *ip;
char *str;
char *nuovo_file;
char nuovo[7] = "nuovo_";
while(1)
{
/* Legge il nome del file e il modo */
printf("\nInserire il nome del file: ");
gets(filename);
printf("filename = %s\n", filename);
/* Apertura del file */
if((fp = fopen(filename, "r")) != NULL)
{
int i;
nuovo_file = strcat(nuovo, filename);
fp1 = creat(nuovo_file, "w");
while(!feof(fp)){
fgets(stringa, 100, fp);
fputs(stringa, fp1);
}
fclose(fp);
fclose(fp1);
puts("Premere x per uscire, un altro tasto per proseguire.");
if((ch = getc(stdin)) == 'x')
break;
else
continue;
}
else
{
fprintf(stderr, "\nErrore apertura file %s in modo %s.\n", filename, mode);
puts("Premere x per uscire, un altro tasto per ritentare.");
if((ch = getc(stdin)) == 'x')
break;
else
continue;
}
}
system("PAUSE");
}