jak w temacie mam problem z uzyciem tych dwoch komend w programie na studia
(to jest tresc zadania)
2. Stworzyć plik tekstowy, w którym wiersze stanowiące komentarz rozpoczynają się od znaku #. W pozostałych wierszach umieszczone zostały wartości konfiguracyjne (czas, predkosc, sila). Plik opcje.cfg może mieć postać:
#komentarz1
czas 0.1
#komentarz 2
sila 99.4
#sd
# komentarz 3
predkosc 4.5
Napisać funkcję odczytującą wartości konfiguracyjne (czas, predkosc, sila) i wpisującą te dane do odpowiedniej struktury. Przydatne funkcje: fgets, sscanf.
a to moje proby
KOD cpp: UKRYJ
int main()
{
FILE * plik; // tworzymy wskaznik do pliku
float predkosc,czas,sila;
char komentarzP[15],komentarzC[15],komentarzS[15];
cout<<"Podaj wartosc predkosci (tylko liczba)"<<endl;
cin>>predkosc;
cout<<endl<<"Podaj wartosc czasu (tylko liczba)"<<endl;
cin>>czas;
cout<<endl<<"Podaj wartosc sily (tylko liczba)"<<endl;
cin>>sila;
cout<<endl<<"Podaj komentarz do predkosci (15znakow)"<<endl;
cin>>komentarzP;
cout<<endl<<"Podaj komentarz do czasu (15znakow)"<<endl;
cin>>komentarzC;
cout<<endl<<"Podaj komentarz do sily (15znakow)"<<endl;
cin>>komentarzS;
//1 - zapisujemy dane do pliku
plik=fopen("dane.txt","w"); // otwieramy plik do zapisu
if (plik!=NULL) //jezeli udalo sie otworzyc plik
{
fprintf (plik ,"#%s - predkosc %f\n#%s\nczas %f\n#%s\nsila %f",komentarzP,predkosc,komentarzC,czas,komentarzS,sila); // zapisujemy dane
fclose(plik); // i zamykamy plik
}
/*Dane zmienne;
odczyt(zmienne);
cout<<endl<<zmienne.predkosc<<endl<<zmienne.czas<<endl<<zmienne.sila;
getchar();*/
plik=fopen("dane.txt","r");
char sniadanie[100];
float proba;
fgets(sniadanie,100,plik);
cout<<sniadanie<<endl;
getchar();
getchar();
sscanf(sniadanie,"%*s %f",&proba);
cout<<proba;
getchar();
fclose(plik);
return 0;
}
{
FILE * plik; // tworzymy wskaznik do pliku
float predkosc,czas,sila;
char komentarzP[15],komentarzC[15],komentarzS[15];
cout<<"Podaj wartosc predkosci (tylko liczba)"<<endl;
cin>>predkosc;
cout<<endl<<"Podaj wartosc czasu (tylko liczba)"<<endl;
cin>>czas;
cout<<endl<<"Podaj wartosc sily (tylko liczba)"<<endl;
cin>>sila;
cout<<endl<<"Podaj komentarz do predkosci (15znakow)"<<endl;
cin>>komentarzP;
cout<<endl<<"Podaj komentarz do czasu (15znakow)"<<endl;
cin>>komentarzC;
cout<<endl<<"Podaj komentarz do sily (15znakow)"<<endl;
cin>>komentarzS;
//1 - zapisujemy dane do pliku
plik=fopen("dane.txt","w"); // otwieramy plik do zapisu
if (plik!=NULL) //jezeli udalo sie otworzyc plik
{
fprintf (plik ,"#%s - predkosc %f\n#%s\nczas %f\n#%s\nsila %f",komentarzP,predkosc,komentarzC,czas,komentarzS,sila); // zapisujemy dane
fclose(plik); // i zamykamy plik
}
/*Dane zmienne;
odczyt(zmienne);
cout<<endl<<zmienne.predkosc<<endl<<zmienne.czas<<endl<<zmienne.sila;
getchar();*/
plik=fopen("dane.txt","r");
char sniadanie[100];
float proba;
fgets(sniadanie,100,plik);
cout<<sniadanie<<endl;
getchar();
getchar();
sscanf(sniadanie,"%*s %f",&proba);
cout<<proba;
getchar();
fclose(plik);
return 0;
}
ogolem rozumiem co mam zrobic ale i jak to napisac w programie ale nie wiem jakie zastosowanie dokladnie maja funkcje sscanf i fgets oraz jakie parametry musza dostac (rowniez jak w przypadku uzycia funkcji fgets odczytac kolejna linijke tekstu z pliku a nie znowu pierwsza).
Bylbym bardzo wdzieczny za przynajmniej wyjasnienie tych dwoch komend.
Z gory dzieki.