Ĺadny brzuch
Witam!!! To moj pierwszy post na tym forum wiec prosze o wyrozumialosc :D Mam taki problem z wczytaniem takiego o to ciągu:(przyklad)
Alicja Kowalska 3A 5 3 4 6 8 2 9 10 8 7 8 7
Jest to odpowiednio imie i nazwisko ucznia, klasa i jego oceny podane w skali od 1 do 10. Moj problem polega na tym ze musze te oceny zamienic ze skali od 1 do 10, na skale od 1 do 6 (przyklad):
Alicja Kowalska 3A 3 2 3 4 5 2 5 6 5 4 5 4.
Jak zrobic to aby nie zmienic imienia, nazwisko i klasy ucznia, aby tylko zmienily sie oceny?? Bardzo prosze o wasza pomoc. Z gory dziekuje i pozdrawiam
to masz problem z wczytaniem czy zamiana??
anyway
jesli chodzi o zmiane skali to wystarczy ze przemonozysz liczby przez 3/5 i odpowiedino zaokraglisz (prawdopodobnie "w gore")
Mam problem z tym aby program zmienil tylko oceny a imie, nazwisko i klase ucznia pozostawil bez zmian.
no to chwila jak Ty wczytujesz dane??
jako string czy jak??
moze jakis kawalek kodu??
Wlasnie te linijki pliku wczytywalem jako stringi. Czyżby bląd z mojej strony????
ok
dwa pierwsze mozesz jako stringi a kolejne jako np. int
a dalej to juz pojdzie z gorki :)
właśnie tylko moje pytanie jest takie jak odczytac te 2 pierwsze jako string a te cyfry jako int??? można to jakoś rozdzielic??
sposobow jest wiele
mi najprostszy jaki przychodzi do glowy to taki:
include <fstream> ... ifstream plik("dane.txt"); string str; int li; for(int i=0; i<3; i++) plik.cin >> str; for(int i=0; i<12; i++) //tu w zaleznosci ile masz liczb/ocen, dla przykladu 12 plik.cin >> li; plik.close();
to kawalek kodu, ktory wczytuje dane (wg wzrou podanego przez Ciebie) i nic poza tym nie robi
Użytkownik fernandez edytował ten post 15 marzec 2009, 20:53
Dzieki wielkie, ten kawalek kodu napewno sie przyda :D. A jeżeli takich linijek z danymi jest wiecej to jak mam je wczytywac?? tak samo czy może inaczej ??? Bo moge powiedziec ze w pliku z danymi mam kolo 50 takich linijek
jesli masz zawsze tyle samo ocen to mozesz wczytywac tak samo "petelka"
gorzej bedzie jak liczba ocen bedzie sie roznic - trzeba bedzie do tego wtedy inaczej podejsc..
edit:
oczywiscie jesli chcesz wszystko wczytac do pamieci to musisz stworzyc strukture w ktorej bedziesz przechowywac te dane
a jesli program ma tylko odczytac, zmodyfikowac i wypisac na ekran to mozesz to robic online (czyli na bierzaco wypisywac wynik)
Użytkownik fernandez edytował ten post 15 marzec 2009, 21:05
wszędzie jest tyle samo ocen wiec spoko, Co lepiej wykorzystac fora czy while'a?????
Wystarczy for, bo w sumie pętla do-while działa podobnie do for, ale w for masz wszystkie warunki w jednym miejscu :P
to juz od Ciebie zalezy
dla mnie to te same petle :P
jak wiesz ze linijek jest 50 i zawsze tak bedzie to mozesz forem jak nie to wczytujesz dane do pierwszego bledu odczytu z pliku while'em
Dzieki wielkie!!!!!!!!!!!!Jak nie bedzie mi to jeszcze wychodzilo to jeszcze tu zajrze i sie dopytam. Jeszcze raz wielkie dzieki
Jeszcze mam male pytanie. w tym programie moge zrobic tak: pobiore linjke, przeksztalce ja, wpisze ja do pliku, i pobiore nastepna linijke???? Jak mam zrobic przejscie do nastepnej linijki???
potrzebna Ci biblioteka fstream
musisz utworzyc plik, do którego chcesz coś zapisać ofstream wyj("wyniki.txt")
i robisz to samo, jakbyś "wyrzucał" dane na ekran za pomocą cout, tylko że tutaj robisz tak:
wyj << zmienna << " ";
a po wykonaniu wszystkich operacji piszesz:
wyj.close();
przy otwieraniu pliku:
ifstream wej("dane.txt"); ... wej >> dane; ... wej.close();
właśnie tak robie, ale do pliku z wynikami wyrzuca mi jakies smieci zamiast wyników. Zeby to robic dla wielu wierszy to tego trzeba petle na poczatek wstawic ,tak??
Dlaczego nie zamieścisz kodu?
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Alicja Kowalska 3A 5 3 4 6 8 2 9 10 8 7 8 7
Jest to odpowiednio imie i nazwisko ucznia, klasa i jego oceny podane w skali od 1 do 10. Moj problem polega na tym ze musze te oceny zamienic ze skali od 1 do 10, na skale od 1 do 6 (przyklad):
Alicja Kowalska 3A 3 2 3 4 5 2 5 6 5 4 5 4.
Jak zrobic to aby nie zmienic imienia, nazwisko i klasy ucznia, aby tylko zmienily sie oceny?? Bardzo prosze o wasza pomoc. Z gory dziekuje i pozdrawiam
to masz problem z wczytaniem czy zamiana??
anyway
jesli chodzi o zmiane skali to wystarczy ze przemonozysz liczby przez 3/5 i odpowiedino zaokraglisz (prawdopodobnie "w gore")
Mam problem z tym aby program zmienil tylko oceny a imie, nazwisko i klase ucznia pozostawil bez zmian.
no to chwila jak Ty wczytujesz dane??
jako string czy jak??
moze jakis kawalek kodu??
Wlasnie te linijki pliku wczytywalem jako stringi. Czyżby bląd z mojej strony????
ok
dwa pierwsze mozesz jako stringi a kolejne jako np. int
a dalej to juz pojdzie z gorki :)
właśnie tylko moje pytanie jest takie jak odczytac te 2 pierwsze jako string a te cyfry jako int??? można to jakoś rozdzielic??
sposobow jest wiele
mi najprostszy jaki przychodzi do glowy to taki:
include <fstream> ... ifstream plik("dane.txt"); string str; int li; for(int i=0; i<3; i++) plik.cin >> str; for(int i=0; i<12; i++) //tu w zaleznosci ile masz liczb/ocen, dla przykladu 12 plik.cin >> li; plik.close();
to kawalek kodu, ktory wczytuje dane (wg wzrou podanego przez Ciebie) i nic poza tym nie robi
Użytkownik fernandez edytował ten post 15 marzec 2009, 20:53
Dzieki wielkie, ten kawalek kodu napewno sie przyda :D. A jeżeli takich linijek z danymi jest wiecej to jak mam je wczytywac?? tak samo czy może inaczej ??? Bo moge powiedziec ze w pliku z danymi mam kolo 50 takich linijek
jesli masz zawsze tyle samo ocen to mozesz wczytywac tak samo "petelka"
gorzej bedzie jak liczba ocen bedzie sie roznic - trzeba bedzie do tego wtedy inaczej podejsc..
edit:
oczywiscie jesli chcesz wszystko wczytac do pamieci to musisz stworzyc strukture w ktorej bedziesz przechowywac te dane
a jesli program ma tylko odczytac, zmodyfikowac i wypisac na ekran to mozesz to robic online (czyli na bierzaco wypisywac wynik)
Użytkownik fernandez edytował ten post 15 marzec 2009, 21:05
wszędzie jest tyle samo ocen wiec spoko, Co lepiej wykorzystac fora czy while'a?????
Wystarczy for, bo w sumie pętla do-while działa podobnie do for, ale w for masz wszystkie warunki w jednym miejscu :P
to juz od Ciebie zalezy
dla mnie to te same petle :P
jak wiesz ze linijek jest 50 i zawsze tak bedzie to mozesz forem jak nie to wczytujesz dane do pierwszego bledu odczytu z pliku while'em
Dzieki wielkie!!!!!!!!!!!!Jak nie bedzie mi to jeszcze wychodzilo to jeszcze tu zajrze i sie dopytam. Jeszcze raz wielkie dzieki
Jeszcze mam male pytanie. w tym programie moge zrobic tak: pobiore linjke, przeksztalce ja, wpisze ja do pliku, i pobiore nastepna linijke???? Jak mam zrobic przejscie do nastepnej linijki???
potrzebna Ci biblioteka fstream
musisz utworzyc plik, do którego chcesz coś zapisać ofstream wyj("wyniki.txt")
i robisz to samo, jakbyś "wyrzucał" dane na ekran za pomocą cout, tylko że tutaj robisz tak:
wyj << zmienna << " ";
a po wykonaniu wszystkich operacji piszesz:
wyj.close();
przy otwieraniu pliku:
ifstream wej("dane.txt"); ... wej >> dane; ... wej.close();
właśnie tak robie, ale do pliku z wynikami wyrzuca mi jakies smieci zamiast wyników. Zeby to robic dla wielu wierszy to tego trzeba petle na poczatek wstawic ,tak??
Dlaczego nie zamieścisz kodu?