Ĺadny brzuch
Witam. Otoz mam taki problem. Probowalem wielu sposobow ale nie wiem jak zrobic drzewo funki. TZN ze jak mam na poczatku programu do wybrania jego jezyk:
Polski-1 Angielski-2 Niemiecki-3
To jak robie
case 1:
i pod nim umieszczam program po polsku jest ok. Ale gdy dam
case 2:
To program po wybraniu 2 mi sie wylacza. Czemu tak jest. Tak samo bylo z warunka mi if i else. Nie wiem czy dobrze probowalem. Moglby mi ktos pomoc. NP na przykladzie prostego programu do zapisania imienia i usuniecia go z pliku.txt zeby po wybraniu 1 byl po polsku, a po wybranie 2 np po angielsku. Z gory dz. Mam nadzieje ze wzglednie to wytlumaczylem.
a pokaz ten swój cały kod najlepiej
ogolnie schemat jest taki:
int n;
cin >>n;
switch(n)
{
case 1:
foo();
break;
case 2:
bar();
break;
}
No mniej wiecej cos takiego. To mi sie program wylacza potem:
#include<iostream> #include<conio.h> #include<string> #include<fstream> using namespace std; int program; int cos; int main(int argc, char*argv[]) { cout << "Jezyk Polski-1\n" ; cout << "Jezyk Angielski-2" ; cin >> program; system("cls"); switch(program) { case 1: { while(true) { cout << "Dodaj imie-3\n" ; cout << "Zobacz imiona-4" ; cin >> cos; system("cls"); switch(cos) { case 3: { ofstream plik; plik.open("imie.txt" , ios::out | ios::app); cout << "Imie: " ; string imie; cin >> imie; plik << imie << endl; plik.close(); break; } case 4: { ifstream plik; plik.open("imie.txt" , ios::in); while(true) { cout << "*******************************************" << endl; char imie[20]; plik.getline(imie, 20); if (plik.gcount() == 0) break; cout << "Imie: " << imie << endl; } plik.close(); getch(); break; } case 2: { while(true) { cout << "Add names-3" ; cout << "Look names-4" ; cin >> cos; switch(cos) { case 3: { ofstream plik; plik.open("imie.txt" , ios::out | ios::app); cout << "Name: " ; string imie; cin >> imie; plik << imie << endl; plik.close(); break; } case 4: { ifstream plik; plik.open("imie.txt" , ios::in); while(true) { cout << "*******************************************" << endl; char imie[20]; plik.getline(imie, 20); if (plik.gcount() == 0) break; cout << "Name: " << imie << endl; } plik.close(); getch(); break; } } } } } } } } }
Mam nadzieje ze kod jest dobrze napisany (pozatym ze gdy sie chce angielski to sie wylacza :D, ale o tym wlasnie jest ten temat :) ) Wiecie o co mi chodzi wiec prosze o pomoc. [Dev-C++]
Popraw nawiasy
Popraw nawiasy
TZN. ???? oglbys pokazac na kodzie te
foo();
itd :)
ciezko cos w tym zobaczyc bo odstraszajaco to wyglada ale chyba brakuje Ci break(ów); w zewnetrznym switch`u
ciezko cos w tym zobaczyc bo odstraszajaco to wyglada ale chyba brakuje Ci break(ów); w zewnetrznym switch`u
Co rozumiesz pod slowem odstraszajaco?
ilosc tych wszystkich warunków (wyobraz sobie co bys miał przy 6 jezykach i 5 mozliwosciach wyboru)
i te wszystkie klamerki na koncu w pionowym słupku ;)
dodałes te breaki
No to ok. Przyznaje sie do bledu. Ale prosze o napisanie poprawnego kodu razem z tym wybraniem jezykow. Pleas :)
Klamerkę od case 1 otwierasz w linii 19 a zamykasz w 106!
W dev-cpp masz chyba opcję podświetlania pasujących nawiasów więc jak można tego nie zauważyć?
Stosuj poprawną indentację kodu, wtedy będzie to widać od razu. Jak ci się nie chce ręcznie to znajdź sobie w sieci jakiś programik do tego. Ja poniższy kod przerobiłem za pomocą astyle.
include<iostream> #include<conio.h> #include<string> #include<fstream> using namespace std; int program; int cos; int main(int argc, char*argv[]) { cout << "Jezyk Polski-1\n"; cout << "Jezyk Angielski-2"; cin >> program; system("cls"); switch (program) { case 1: { // tu otwierasz case 1 a zamykasz w linii 107 while (true) { cout << "Dodaj imie-3\n"; cout << "Zobacz imiona-4"; cin >> cos; system("cls"); switch (cos) { case 3: { ofstream plik; plik.open("imie.txt" , ios::out | ios::app); cout << "Imie: "; string imie; cin >> imie; plik << imie << endl; plik.close(); break; } case 4: { ifstream plik; plik.open("imie.txt" , ios::in); while (true) { cout << "*******************************************" << endl; char imie[20]; plik.getline(imie, 20); if (plik.gcount() == 0) break; cout << "Imie: " << imie << endl; } plik.close(); getch(); break; } case 2: { while (true) { cout << "Add names-3"; cout << "Look names-4"; cin >> cos; switch (cos) { case 3: { ofstream plik; plik.open("imie.txt" , ios::out | ios::app); cout << "Name: "; string imie; cin >> imie; plik << imie << endl; plik.close(); break; } case 4: { ifstream plik; plik.open("imie.txt" , ios::in); while (true) { cout << "*******************************************" << endl; char imie[20]; plik.getline(imie, 20); if (plik.gcount() == 0) break; cout << "Name: " << imie << endl; } plik.close(); getch(); break; } } } } } } } // < tu zamykasz case 1 } }
Użytkownik Radek edytował ten post 15 styczeń 2008, 08:36
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Polski-1 Angielski-2 Niemiecki-3
To jak robie
case 1:
i pod nim umieszczam program po polsku jest ok. Ale gdy dam
case 2:
To program po wybraniu 2 mi sie wylacza. Czemu tak jest. Tak samo bylo z warunka mi if i else. Nie wiem czy dobrze probowalem. Moglby mi ktos pomoc. NP na przykladzie prostego programu do zapisania imienia i usuniecia go z pliku.txt zeby po wybraniu 1 byl po polsku, a po wybranie 2 np po angielsku. Z gory dz. Mam nadzieje ze wzglednie to wytlumaczylem.
a pokaz ten swój cały kod najlepiej
ogolnie schemat jest taki:
int n;
cin >>n;
switch(n)
{
case 1:
foo();
break;
case 2:
bar();
break;
}
No mniej wiecej cos takiego. To mi sie program wylacza potem:
#include<iostream> #include<conio.h> #include<string> #include<fstream> using namespace std; int program; int cos; int main(int argc, char*argv[]) { cout << "Jezyk Polski-1\n" ; cout << "Jezyk Angielski-2" ; cin >> program; system("cls"); switch(program) { case 1: { while(true) { cout << "Dodaj imie-3\n" ; cout << "Zobacz imiona-4" ; cin >> cos; system("cls"); switch(cos) { case 3: { ofstream plik; plik.open("imie.txt" , ios::out | ios::app); cout << "Imie: " ; string imie; cin >> imie; plik << imie << endl; plik.close(); break; } case 4: { ifstream plik; plik.open("imie.txt" , ios::in); while(true) { cout << "*******************************************" << endl; char imie[20]; plik.getline(imie, 20); if (plik.gcount() == 0) break; cout << "Imie: " << imie << endl; } plik.close(); getch(); break; } case 2: { while(true) { cout << "Add names-3" ; cout << "Look names-4" ; cin >> cos; switch(cos) { case 3: { ofstream plik; plik.open("imie.txt" , ios::out | ios::app); cout << "Name: " ; string imie; cin >> imie; plik << imie << endl; plik.close(); break; } case 4: { ifstream plik; plik.open("imie.txt" , ios::in); while(true) { cout << "*******************************************" << endl; char imie[20]; plik.getline(imie, 20); if (plik.gcount() == 0) break; cout << "Name: " << imie << endl; } plik.close(); getch(); break; } } } } } } } } }
Mam nadzieje ze kod jest dobrze napisany (pozatym ze gdy sie chce angielski to sie wylacza :D, ale o tym wlasnie jest ten temat :) ) Wiecie o co mi chodzi wiec prosze o pomoc. [Dev-C++]
Popraw nawiasy
Popraw nawiasy
TZN. ???? oglbys pokazac na kodzie te
foo();
itd :)
ciezko cos w tym zobaczyc bo odstraszajaco to wyglada ale chyba brakuje Ci break(ów); w zewnetrznym switch`u
ciezko cos w tym zobaczyc bo odstraszajaco to wyglada ale chyba brakuje Ci break(ów); w zewnetrznym switch`u
Co rozumiesz pod slowem odstraszajaco?
ilosc tych wszystkich warunków (wyobraz sobie co bys miał przy 6 jezykach i 5 mozliwosciach wyboru)
i te wszystkie klamerki na koncu w pionowym słupku ;)
dodałes te breaki
No to ok. Przyznaje sie do bledu. Ale prosze o napisanie poprawnego kodu razem z tym wybraniem jezykow. Pleas :)
Klamerkę od case 1 otwierasz w linii 19 a zamykasz w 106!
W dev-cpp masz chyba opcję podświetlania pasujących nawiasów więc jak można tego nie zauważyć?
Stosuj poprawną indentację kodu, wtedy będzie to widać od razu. Jak ci się nie chce ręcznie to znajdź sobie w sieci jakiś programik do tego. Ja poniższy kod przerobiłem za pomocą astyle.
include<iostream> #include<conio.h> #include<string> #include<fstream> using namespace std; int program; int cos; int main(int argc, char*argv[]) { cout << "Jezyk Polski-1\n"; cout << "Jezyk Angielski-2"; cin >> program; system("cls"); switch (program) { case 1: { // tu otwierasz case 1 a zamykasz w linii 107 while (true) { cout << "Dodaj imie-3\n"; cout << "Zobacz imiona-4"; cin >> cos; system("cls"); switch (cos) { case 3: { ofstream plik; plik.open("imie.txt" , ios::out | ios::app); cout << "Imie: "; string imie; cin >> imie; plik << imie << endl; plik.close(); break; } case 4: { ifstream plik; plik.open("imie.txt" , ios::in); while (true) { cout << "*******************************************" << endl; char imie[20]; plik.getline(imie, 20); if (plik.gcount() == 0) break; cout << "Imie: " << imie << endl; } plik.close(); getch(); break; } case 2: { while (true) { cout << "Add names-3"; cout << "Look names-4"; cin >> cos; switch (cos) { case 3: { ofstream plik; plik.open("imie.txt" , ios::out | ios::app); cout << "Name: "; string imie; cin >> imie; plik << imie << endl; plik.close(); break; } case 4: { ifstream plik; plik.open("imie.txt" , ios::in); while (true) { cout << "*******************************************" << endl; char imie[20]; plik.getline(imie, 20); if (plik.gcount() == 0) break; cout << "Name: " << imie << endl; } plik.close(); getch(); break; } } } } } } } // < tu zamykasz case 1 } }
Użytkownik Radek edytował ten post 15 styczeń 2008, 08:36