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"); }

Rispondi quotando