codice:
#include <stdio.h>
#include <stdlib.h>
main(){
FILE* fi;
fi = fopen("ingresso.txt", "r");
if (fi == NULL) perror("Errore");
int i;
int n;
int fine;
int v[50];
int a = 0;
for (n = 0; n <= 50; n++){
fine = fscanf(fi, "%d", &v[n]);
if (fine == EOF) break;
}
fclose(fi);
if (n % 2 != 0){
fi = fopen("ingresso.txt", "a");
fprintf(fi, " 0");
n++;
fclose(fi);
}
fi = fopen("ingresso.txt", "r");
for (n = 0; n <= 50; n++){
fine = fscanf(fi, "%d", &v[n]);
if (fine == EOF) break;
}
fclose(fi);
FILE* fu;
fu = fopen("uscita.txt", "w");
for (i = 0; i < n; i++){
fprintf(fu, "%d ", v[i]);
if (i%2!=0) fprintf(fu, "\n");
}
}
allora ragazzi il codice che ho scritto arrivato a casa è questo, ovviamente inizialmente l'avevo scritto diverso poi compilando ed eseguendolo ho visto degli errori che ho corretto.. Adesso con questo codice riesco a fare quello che chiedeva l'esercizio ma ho come l'impressione che non sia lo stesso giusto. Soprattutto non mi convince il fatto che nell'esercizio diceva di stampare 2 numeri per riga nel file di uscita e che se i numeri erano dispari di aggiungere uno 0 nell'ultima riga mentre con il codice che ho scritto legge il file di ingresso e se i numeri sono dispari aggiunge lo 0 al fine del file ingresso.. in che modo si potrebbe fare questo esercizio? non so magari usando la libreria string.h.. ditemi voi...
per quanto riguardo la versione del visual studio in poche parole nel 2010 mi continuava a dire sempre che mancavano i ; e che le variabili non era dichiarate ma invece non era cosi perchè i ; erano presenti e le variabili erano dichiarate.. inoltre mi sono accorto che nel 2013 appena scrivo main (){} mi "crea" un nuovo ambiente mentre nel 2010 è come se rimanessi nelle dichiarazioni..