Originariamente inviato da oregon
A priva vista .... la fopen non va inserita all'interno del ciclo ... e non devi inserire la return 1 ...
Due consigli:
1) apri un thread diverso per un altro problema (anche se sembra che abbia a che fare con il precedente)
2) inserisci i tag [ code ] [ /code ] per rendere leggibile il codice
3) quando ci sono problemi, spiega cosa succede in particolare ... cosa fai ... che risultati hai ...
Grazie per i tuoi consigli. E' da poco che sono iscritto e ancora non ho preso la mano con i codici. La prossima volta aprirò un nuovo topic ma per questo problema finiamo di sfruttare questo. Allora ho tolto il return e ho anche tolto lo switch che non serviva sostituendolo con una semplice condizione if. Purtroppo però non stampa su file... Il codice più ordinato è questo
codice:
#include <stdio.h>
typedef struct{
char nome[20];
int prezzo;
int quant;
} articolo;
articolo elementi[100];
int main()
{
int n, count;
char c;
do{
printf("Quanti articoli?\n\n");
scanf("%d", &n);
for(count=0; count<n; ++count)
{
printf("\nArticolo %d\n\n", count+1);
printf("Nome?\n");
scanf("%s", elementi[count].nome);
printf("\n\nPrezzo in Euro?\n");
scanf("%d", &elementi[count].prezzo);
printf("\nQuantita'?\n");
scanf("%d", &elementi[count].quant);
}
printf("\nRISULTATI:\n\n\n");
for(count=0; count<n; ++count)
{
printf("Articolo %d\n\n", count +1);
printf("%s -- %d Euro -- %d pezzi\n\n", elementi[count].nome, elementi[count].prezzo, elementi[count].quant);
}
printf("Stampa su file?(S/N)\n\n");
c=getchar();
getchar();
if(c=='s' || c=='S')
{
for(count=0;count<n;++count)
{
FILE *pf = fopen("RISULTATI.txt", "a+");
if (pf == NULL)
return 0;
fprintf(pf, "Articolo numero %d\n\n", count+1);
fprintf(pf, "%s -- %d Euro -- %d pezzi\n\n", elementi[count].nome, elementi[count].prezzo, elementi[count].quant);
fclose(pf);
}
}
}while(n);
}