Meine Daten sieht wie folgt aus:Trouble in Werte aus der Datei zu lesen
4.2 6.0
3.1 4.0
10.5 10.0
23.0 8.0
9.7 4.0
15.9 5.0
Ich versuche, in zwei Werte zu einem Zeitpunkt, zu lesen, ordnen sie meine Variable, und aus den Ergebnissen drucken. Ich kann nicht herausfinden, warum die Werte in nicht gelesen werden. Meine Vorlage wird in meine Ausgabe-TXT-Datei gedruckt, aber keiner meiner Werte darunter wird ausgedruckt.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define INPUT_FILE "lab3.dat"
#define ANSWER_FILE "lab3.txt"
int main(void)
{
int nsides;
double radius;
double perimeter;
double area;
FILE* my_data;
FILE* out_file;
my_data = fopen(INPUT_FILE, "r");
if(my_data == NULL)
{
printf("Error on opening the data file\n");
exit(0);
}
out_file = fopen(ANSWER_FILE,"w");
if(out_file == NULL)
{
printf("Error on opening the output file\n");
exit(0);
}
perimeter = 2*nsides*radius*sin(M_PI/nsides);
area = 0.5*nsides*(radius*radius)*sin((2*M_PI)/nsides);
fprintf(out_file, "\nNima Sarrafzadeh. Lab 3.\n\n");
fprintf(out_file, " Number Perimeter Area Of \n");
fprintf(out_file, " Radius Of Sides Of Polygon Polygon \n");
fprintf(out_file, "-------- -------- ------------ ----------- \n");
while((fscanf(my_data, "%d%d", &radius, &nsides))==2){
fprintf(out_file, "%d %d %d %d",radius, nsides, perimeter, area, "\n");
}
fclose(my_data);
fclose(out_file);
}
Sie müssen 'Bereich' und 'Umfang' für jedes gelesene Zahlenpaar berechnen - in der 'while()' - Schleife, nach dem Aufruf von 'fscanf()' und vor dem Aufruf von 'fprintf()' . –
@ DavidC.Rankin Es gibt ein 'fscanf()', das in der Bedingung 'while()' -loop bedingt ist. –
Ja, ich vermisste es unter dem Header ':)' (nachdem die Berechnung ohne es gemacht wurde) –