Grazie mille Naked, ora però ho bisogno di un altro aiuto.
Ho fatto questo programma che dovrebbe leggere da un file "dati" (che gli passo come argomento) e da questi dati deve leggere delle righe, fare un operazione e stampare il risultato su un file esterno, che gli passo sempre come argomento:
La prima riga contiene un operatore (+|-|*|/)
La seconda riga contiene i due numeri con cui deve fare l'operazione.
La terza riga un altro operatore.
La quarta riga altri due numeri.
... e così via.
Codice:
//---------------------------------------------------------------------------
#pragma hdrstop
#include <stdio.h>
#include <conio.h>
#include "funzioni.h"
//---------------------------------------------------------------------------
static float a;
static float b;
static float ris;
static char operatore[3];
FILE *ingresso;
FILE *uscita;
#pragma argsused
int main(int argc, char* argv[])
{
int fine=0;
int var=1;
int ecc=0;
while(fine<4){
while(var==1){
fine++;
ingresso=fopen(argv[1], "r");
var=fscanf(ingresso,"%s",operatore);
if(operatore[0]=='Q'){
return 0;
}else{
if(operatore[0]!='+'&&operatore[0]!='-'&&operatore[0]!='*'&&operatore[0]!='/'){
return 0;
}else{
var=0;
}
}
}
while(var==0){
ecc=fscanf(ingresso, "%f %f",&a,&b);
if(ecc==0){
var=0;
}else{
if(operatore[0]=='/'&&b==0){
return 0;
}else{
var=1;
}
}
}
fclose(ingresso);
switch(operatore[0]){
case'+':
ris=somma(a,b);
break;
case'-':
ris=differenza(a,b);
break;
case'*':
ris=prodotto(a,b);
break;
case'/':
ris=divisione(a,b);
break;
}
uscita=fopen(argv[2],"w");
fprintf(uscita, "%f", ris);
}
fclose(uscita);
return 0;
}
//---------------------------------------------------------------------------
Il problema è che legge la riga 1, la riga 2, scrive il risultato e poi torna a leggere la riga 1 e la riga 2.
L'altro problema è che scrive sempre sulla stessa riga.
Avete idea di come risolvere?
Scusate la nabbezza, ma ho iniziato a scrivere in C da poco e ho bisogno di molti chiarimenti