Skocz do zawartości

[C] zapis do pliku


karbek

Polecane posty

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


double wylicz_x(double a1,double b1,double c1,double a2,double b2,double c2)
{
double zapas;

 zapas=(b2*c1-b1*c2)/(a1*b2-a2*b1);
 return zapas;              
}
double wylicz_y(double a1,double b1,double c1,double a2,double b2,double c2)
{
double zapas;

 zapas=(a1*c2-a2*c1)/(a1*b2-a2*b1);
 return zapas;             
}

double a1,a2,b1,b2,c1,c2,punkt_x,punkt_y;
char *zapas;
char A1[10];
FILE *fp;

int main(int argc, char *argv[])
{

fp=fopen("Uklad_Rownan.txt","a");
fprintf (fp, "Uklad Rownan:\n\na1x + b1y = c1\na2x + b2y = c2\n");

printf("Wprowadz a1 ");
scanf("%f",&a1);

//sprintf(A1,"%d",a1);
//fputs(A1,fp);

printf("Wprowadz a2 ");
scanf("%f",&a2);

printf("Wprowadz b1 ");
scanf("%f",&b1);
printf("Wprowadz b2 ");
scanf("%f",&b2);

printf("Wprowadz c1 ");
scanf("%f",&c1);    
printf("Wprowadz c2 ");
scanf("%f",&c2);

printf("\n");

punkt_x=wylicz_x(a1,b1,c1,a2,b2,c2);
printf("X wynosi %0.1f",punkt_x);

printf("\n");
punkt_y=wylicz_y(a1,b1,c1,a2,b2,c1);
printf("Y wynosi %0.1f\n\n",punkt_y);

fclose(fp);

system("PAUSE");
return 0;
}

 

Problem jest następującej treści. Chcę aby w pliku zaraz pod "sztywnym" układem równań zapisywały się poszczególne wartości dla a1, a2, b1...

Na samym końcu w pliku powinien być zapisany wynik owych równań. Kiedy prubóję podstawić w pliku wartość (dla przykładu) a1 przy pomocy puts(), kompilator informuje mnię o niemożności przekonwertowania duble na char... albo coś w tym stylu. Po tym komunikacie próbowałem coś zdziałać przy pomocy sprintf (do tego jest to char A1[10]), ale w pliku zamiast wartosci wyświetla mi jakiś losowy ciąg znaków. Proszę o pomoc muszę oddać program na ćwiczenia :/ Nie ma problemu z inną metodą wykonania tego programu, ważne aby był w C

Link do komentarza
Udostępnij na innych stronach

 sprintf(char *string,"Format %.2d jaki chcesz miec",1);

pozwala na zapis do stringa w formacie jakim wypisujesz na ekran. np %.3f.

dokladniejszy opis tutaj:

http://pl.wikibooks.org/wiki/C/sprintf

 

a zapis do pliku masz tutaj:

 

http://www.java2s.com/Code/C/File/Savestri...tofilefputs.htm

 

:)

"(2b || !(2b)) == question" W. Shakespeare

http://jakubniwa.pl - świat sztucznej inteligencji

Link do komentarza
Udostępnij na innych stronach

Poprzedni problem udało się rozwiązać, ale ten program prawdopodobnie (niezrozumiałe polecenie ćwiczenia) powinien jeszcze zapisać cały kod źródłowy tego programu do pliku. Nie mam pojęcia jak to zrobić.

 

Oto dotychczasowy kod

 

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>

float wylicz_x(float a1,float b1,float c1,float a2,float b2,float c2)
{
float zapas;

 zapas=(b2*c1-b1*c2)/(a1*b2-a2*b1);
 return zapas;
}

float wylicz_y(float a1,float b1,float c1,float a2,float b2,float c2)
{
float zapas;

 zapas=(a1*c2-a2*c1)/(a1*b2-a2*b1);
 return zapas;
}

float a1,a2,b1,b2,c1,c2,x,y;
char *zapas;
FILE *fp;

int main(int argc, char *argv[])
{

fp=fopen("Uklad_Rownan.txt","a");
fprintf (fp, "Uklad Rownan:\n\na1x + b1y = c1\na2x + b2y = c2\n\n");

printf("Wprowadz a1 ");
scanf("%f",&a1);
fprintf(fp,"a1 = %0.1f\n",a1);

printf("Wprowadz a2 ");
scanf("%f",&a2);
fprintf(fp,"a2 = %0.1f\n",a2);

printf("Wprowadz b1 ");
scanf("%f",&b1);
fprintf(fp,"b1 = %0.1f\n",b1);

printf("Wprowadz b2 ");
scanf("%f",&b2);
fprintf(fp,"b2 = %0.1f\n",b2);

printf("Wprowadz c1 ");
scanf("%f",&c1);   
fprintf(fp,"c1 = %0.1f\n",c1);

printf("Wprowadz c2 ");
scanf("%f",&c2);
fprintf(fp,"c2 = %0.1f\n\n",c2);

printf("\n");

x=wylicz_x(a1,b1,c1,a2,b2,c2);
printf("x wynosi %0.3f",x);
fprintf(fp,"x = %0.3f\n",x);

printf("\n");
y=wylicz_y(a1,b1,c1,a2,b2,c2);
printf("y wynosi %0.3f\n",y);
fprintf(fp,"y = %0.3f\n\n",y);

fclose(fp);

system("PAUSE");
return 0;
}

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...