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
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ążek
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
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
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

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

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