stypa1110 utworzono 16 września 2008 utworzono 16 września 2008 (edytowane) Witam mam pewien problem. Mam napisać program, który czyta plan lekcji z pliku txt i wyświetla go na ekranie oraz koloruje na czerwono przedmioty zawodowe. #include <cstdlib>#include <iostream>#include <fstream>#include <windows.h>using namespace std;void kol(int kolor);int main(){ int zmienna; zmienna=0; string dana; ifstream odczyt ("dane.txt"); do { kol(15); odczyt>>dana; if (dana=="Poniedzialek") { cout<<dana<<" "; odczyt>>dana; cout<<dana<<endl; } if (dana=="Wtorek") { cout<<dana<<" "; odczyt>>dana; cout<<dana<<endl; } if (dana=="Sroda") { cout<<dana<<" "; odczyt>>dana; cout<<dana<<endl; } if (dana=="Czwartek") { cout<<dana<<" "; odczyt>>dana; cout<<dana<<endl; } if (dana=="Piatek") { cout<<dana<<" "; odczyt>>dana; cout<<dana<<endl; zmienna++; } odczyt>>dana; while (dana!="/") { if (dana=="SOiSK") { kol(12); cout<<dana<<endl; } if (dana=="OB") { kol(12); cout<<dana<<endl; } if (dana=="TI") { kol(12); cout<<dana<<endl; } if (dana=="UTK") { kol(12); cout<<dana<<endl; } if (dana=="POiS") { kol(12); cout<<dana<<endl; } kol(15); odczyt>>dana; } cout<<"\n"; } while (zmienna==0); kol(15); system("PAUSE"); return 0;}void kol(int kolor){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),kolor);} Zawartość plika dane.txt Poniedzialek 08:15SOiSKSOiSKSOiSKOBOBReligiaMatematyka/Wtorek 09:55TI NiemieckiBiologiaUTKPOHistoriaPolskiPolski/Sroda 08:15MatematykaChemiaAngielskiPodstawy_PrzedsiebiorczosciWFWF/Czwartek 08:15HistoriaReligiaSOiSKGeografiaPolskiPolski/Piatek 08:15AngielskiNiemieckiFizykaWFOBPOiSPOiSPOiS/ Używam środowiska wxDev-C++ 6.10.2 I narazie jak ma mi wyświetlać same zawodowe to program działa bez zarzutu, ale gdy dodam, że ma również wyświetlać inne przedmioty to zaczynają się kłopoty. Niektóre przedmioty zawodowe zostają wyświetlone 2 razy więcej niż powinny i wtedy jeden z nich jest na czerwono a drugi na biało. Przedmioty ogólne chciałem wypisać za pomocą else po ostatnim if oraz za pomocą if gdzie dawałem za warunek dana!="SOiSK" oraz reszte zawodowych i też nie wychodziło. Za pomoc z góry dziękuje. edit: Już rozwiązałem problem
święty komentarz 17 września 2008 komentarz 17 września 2008 Nie wiem czy o to Ci chodziło ale proponuję takie coś, że pętlę while z tymi kolorkami zamienić np na taką: while (dana!="/") { if (dana=="SOiSK" || dana=="OB" || dana=="TI" || dana=="UTK" || dana=="POiS" ) { kol(12); cout<<dana<<endl; } else { kol(15); cout << dana << endl; } odczyt>>dana; } I wtedy wyświetla wszystkie przemioty +zawodowe koloruje P.s. Proponuję skrócić w podobny sposób pętle z dniami tygodnia, nie robiłem już tego ale na pierwszy rzut oka wydaje się że analogicznie Mam nadzieję że o to chodziło Pozdro
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.