matematykaszkolna.pl
c++ Metis: C++ struktury Czemu ten kod nie działa?emotka http://pastebin.com/JVX946f2
28 sty 04:09
jc: Co to jest b[i] ? Powinno być raczej ksiazki[i]. Po zamianie program daje się przynajmniej uruchomić. Mała prośba. Używaj funkcji z biblioteki standardowej. W przeciwnym wypadku trzeba dość dużo zmieniać zanim program da się skompilować. Chodzi o #include "stdafx.h" #include <conio.h> choice = getch(); system("cls");
28 sty 08:29
jc: Jak napiszesz cin >> choice; będzie działać wszędzie, choć będzie wymagać wciskania Enter po wpisaniu znaku.
28 sty 08:37
jc: char choice; Zmienna choice nie musi być zmienną globalną, lepiej deklarować w każdej funkcji, gdzie jest potrzebna.
28 sty 08:40
jc: Zrób coś jeszcze, aby nie wyświetlało 100 książek, tylko te prawdziwe książki. Nie podpowiem, bo rozwiązań jest kilka.
28 sty 08:43
Metis: Nadal nie działaemotka http://pastebin.com/0CBJpnJV
28 sty 12:42
Metis: Czy ja tych danych nie powinnienem jakoś przekazać
28 sty 12:58
jc: A co konkretnie nie działa? Ja mam taki kod, który jakoś działa: −−− #include <iostream> using namespace std; struct TBooks{ char Title[30]; char Author[30]; unsigned Index; float Price; }; const int x = 100; TBooks ksiazki[x]; void showCheapyBooks(){ bool is = false; cout << endl << "Lista tanich ksiazek:"; for (int i = 0; i<100; i++) if (ksiazki[i].Price<10.00){ cout << endl; cout << endl << " Tytul: " << ksiazki[i].Title; cout << endl << " Autor: " << ksiazki[i].Author; cout << endl << "Indeks: " << ksiazki[i].Index; cout << endl << " Cena: " << ksiazki[i].Price; is = true; } if (!is) cout << endl << "Lista jest pusta"; cout << endl << "Nacisnij klawisz ENTER"; cin.get(); } void menu() { char choice; for ( ; ; ){ cout << "Wyswietl tanie ksiazki− nacisnij 1" << endl; cin >> choice; if (choice == '1') showCheapyBooks(); } } void func(){ char choice; cout << "Podaj dane dotyczace ksiazek:" << endl; for (int i = 0; i<=100; i++){ cout << "Podaj tytul ksiazki: "; cin >> ksiazki[i].Title; cout << "Podaj autora ksiazki: "; cin >> ksiazki[i].Author; cout << "Podaj index ksiazki: "; cin >> ksiazki[i].Index; cout << "Podaj cene ksiazki: "; cin >> ksiazki[i].Price; cout << "Czy chcesz zakonczyc wczytywanie danych?(T/N)" << endl; cin >> choice; if (choice == 'T' || choice == 't') menu(); } } int main(){ func(); menu(); }
28 sty 13:03
Metis: Ale po wpisaniu kilku ksiązek wywietli Ci te o cenie mneijszej od 10 ?
28 sty 13:04
28 sty 13:13
Dziadek Mróz: Popraw tylko wyświetlanie bo mi się nie chce
28 sty 13:14
Metis: Dziadku a co jest nie tak w moim kodzie ?
28 sty 13:15
jc: Dopisałem coś aby program nie wypisaywał wszystkiego, if (ksiazki[i].Price<10.00 && ksiazki[i].Index)
28 sty 13:15
Metis: Ale nie wyświetla jc tych tanich książekemotka
28 sty 13:15
jc: Mi wyświetla, więc nie wiem w czym rzecz. Tylko ja musiałem trochę pozmieniać kod, bo się nie kompilował.
28 sty 13:17
Metis: Mamy ten sam kod i u Ciebie działa inaczej niz u mnieemotka Rezultat: http://prntscr.com/e1en6k
28 sty 13:22
Metis: Ok, działa.... nie dodałem #include "stdafx.h"
28 sty 13:23
Metis: Dzięki
28 sty 13:23
jc: Metis, a nie lepiej używać standardowego kompilatora? Czytałem, że to stdafx przyspiesza kompilację w jakimś kompilatorze. Ale takie kody, jak Twój i tak się szybko kompilują. Poza tym, gdzie się używa takiego kompilatora?
28 sty 13:27
Metis: Można jc , ale tutaj mam wszystko − mojego Pythona, C# , i C++, których używam emotka
28 sty 13:28
jc: Tutaj, tzn. gdzie? Prawdopodobnie mówisz o jakimś środowisku programistycznym. Zmień domyślny kompilator i będziesz mógł pisać zwyczajnie.
28 sty 13:30
jc: No, ale może ten kompilator ma jakieś szczególne cechy. Jednak na etapie nauki może lepiej wybrać standard.
28 sty 13:32
Metis: Ok, rozumiem emotka Muszę pogrzebać w funcjach na wolnym czasie. Dziękuje.
28 sty 13:33
Dziadek Mróz: stdafx jest dla VisualStudio. M$ robi wszystko po swojemu, tak samo jak dzielenie katalogów, nie pod slashem '/' jak we wszystkich systemach, tylko backslashem '\'
28 sty 13:35
jc: Metis, jakiego kompilatora/systemu/środowiska używasz w szkole?
28 sty 14:08
Metis: Też Visual'a emotka ale mamy wybór
28 sty 14:12
jc: A jaki jest wybór?
28 sty 14:16
Dziadek Mróz: MinGw−w64
28 sty 14:22
Mariusz: Na linuksie jest kompilator jest instalowany z systemem Gdybyśmy chcieli się bawić Pascalem to trzeba by było dodatkowo ściągać Free Pascala
28 sty 15:11
Metis: Jeszcze dzisiaj będę Was męczył obsługą plików emotka
28 sty 15:52
Dziadek Mróz: std::ifstream ifs; // std::fstream fs; ifs.open("plik.txt"); // fs.open("plik.txt", std::ios::in); if (ifs) // if (fs) { // plik.txt: 1 2 3 4 5 int num; while (ifs >> num) { std::cout << " " << num; } } else { perror("plik.txt"); } ifs.close(); // fs.close(); −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− std::ofstream ofs; // std::fstream fs; ofs.open("plik.txt"); // fs.open("plik.txt", std::ios::out); if (ofs) // if (fs) { for (size_t i = 0; i < 5; i++) { ofs << " " << i; } } else { perror("plik.txt"); } ofs.close(); fs.close();
28 sty 20:28