|
TwojePC.pl © 2001 - 2026
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
[C++] Oślepłem, albo już nie wiem.... , carlosA 26/11/09 19:53 Fragment kodu:
struct Ksiazka {
char autor[50];
char tytul[50];
int LiczbaStron;
int wydanie;
double cena;
void wyswietl();
};
//spis procedur umożliwiających wykonanie działań na bazie danych
int zapis();
int odczyt();
int z_plik();
int szukaj();
int zasadniczy();
//void Ksiazka::wyswietl() {
// cout << "Autor: " << autor << endl;
// cout << "Tytul: " << tytul << endl;
// cout << "Liczba stron: " << LiczbaStron << endl;
// cout << "Wydanie: " << wydanie << endl;
// cout << "Cena: " << cena << endl;
// }
void f_autor( char find_autor, Ksiazka* where, int ile_rekordow ){
cls();
for( int i = 0; i < ile_rekordow; i++ ) //36
if( find_autor == where[i].autor ) //37
cout << where[i].autor << endl; //38
cout << where[i].tytul << endl; //39
cout << where[i].LiczbaStron << endl;
cout << where[i].wydanie << endl;
cout << where[i].cena << endl;
cout << "\n" << endl;
}
Błędy:
37 ISO C++ forbids comparison between pointer and integer
39 name lookup of `i' changed for new ISO `for' scoping
36 using obsolete binding at `i'
Pewnie coś czeskiego, bo patrzyłem na gotowca i coś źle przerobiłem, ale siedzę gapię się, jak małpa w gnat.
Korzystałem na podstawie takiego przykładu:
struct osoba {
string imie;
string nazwisko;
int id;
};
void find_name( string name, osoba* where, int ile_osob ){
for( int i = 0; i < ile_osob; i++ )
if( name == where[i].imie )
cout << where[i].id << ". " << where[i].imie << ' ' << where[i].nazwisko << '\n';
}
void find_surname( string surname, osoba* where, int ile_osob ) {
for( int i = 0; i < ile_osob; i++ )
if( surname == where[i].nazwisko )
cout << where[i].id << ". " << where[i].imie << ' ' << where[i].nazwisko << '\n';
}
i tutaj wszystko jest ok.
Jakieś sugestie?#whatever - więc , gorii 26/11/09 20:01
find_autor powinno być char * w nagłówku metody; brakuje { w linii 37- i jeszcze , gorii 26/11/09 20:02
brakuje } na końcu metody f_autor;
skoro używasz char * a nie string jak w przykładzie więc musisz porównywać za pomocą strcmp() a nie ==
- Dawno nic nie pisałem w C++ ale spróbuję , Conroy 26/11/09 20:08
Od końca:
Błąd w linii 39 jest spowodowany tym, że w tej linii nie istnieje już zmienna i.
Zobacz, tworzysz ją w pętli for, w której to pętli znajduje się tylko instrukcja if, a do instrukcji if jest wpisany cout z linii 38. Po czym jest średnik i cały for zostaje tutaj zakończony.
Dodaj klamerki { } na końcu lini z for i po ostatnim coutcie.
A co do innych to w sumie nie wiem tak na sucho. PHP jednak strasznie "rozleniwia".http://flickr.com/photos/myhacien
da |
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2026, TwojePC.PL |
 |
|
|
|