2017-10-16 3 views
-1
pInput = fopen("input.bin", "w+b"); 
if (pInput == NULL) 
{ 
    return(-1); 
    MyLogs(szError); 
} 

printf("Enter 'x': "); scanf("%lf", &x); 

fwrite(&a, sizeof(double), 1, pInput); 
fwrite(&x, sizeof(double), 1, pInput); 
fwrite(&b, sizeof(double), 1, pInput); 

fseek(pInput, 0, SEEK_SET); 

fread(&a, sizeof(double), 1, pInput); 
fread(&x, sizeof(double), 1, pInput); 
fread(&b, sizeof(double), 1, pInput); 
fclose(pInput); 

char buff[100]; 
snprintf(buff, 99, "Parameter file 'input.bin' opened. X = %.3lf, a = %.0lf, b = %.0lf.", x, a, b); 

MyLogs(buff); 

dResult = x/a - 1/(a * 6) * log10(a + b*exp(6 * x)); 

ich das Programm (für meine Hausaufgaben unter Verwendung befreit(), fwrite(), ftell(), fseek()) zu schreiben hatte, die schreibt binary einige Daten und liest es dann um den Ausdruck zu berechnen. Ich habe eine Frage. Muss ich drei fwrite() s und drei frei() s schreiben? Oder kann ich dies in einem Funktionsaufruf tun? Gibt es dafür einen perfekten Weg?Lesen und Schreiben von/zu einer .bin-Datei in C

Antwort

0

Here beantworten Sie über "wie man es besser schreibt" Verwenden Sie einfach ein Array anstelle von einem nach dem anderen Parameter. Über die .bin Datei ist dies keine Erweiterung, die gleiche Lösung funktioniert mit .txt und sogar keine Erweiterung.