ďťż

Ł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
  •