Ciągi znaków - Kurs
Ostatnio zmodyfikowano 2018-03-19 21:49
marcinpro Temat założony przez niniejszego użytkownika |
» 2018-03-19 21:07:25 Szczerze, to nie zawiele mi to tłumaczy, nie może prze konwertować 'char *[20] do char ** dla argumentu 1. Szukałem po internecie coś podobne, ale jest bez wskaźnika. #include <iostream> #include <conio.h>
using namespace std;
void wprodanych( char * marka[], char * model[], int * pojesil, int * speedmax )
{ int i = 0; cout << "Witaj wprowadz 3 samochody do bazy danych podajac, marke ,mode, pojemnosc , max predkosc:" << endl; getch(); while( i++ < 3 ) { cout << "Wprowadz dane samochodu " << i + 1 << ':' << endl; cout << "Podaj marke: " << endl; cin.get( marka[ i ], 20 ); cin.sync(); cout << "Podaj model: " << endl; cin.get( model[ i ], 20 ); cin.sync(); cout << "Podaj pojemnosc silnika: " << endl; cin >> * pojesil; while( !cin.good() ) { cout << "Bledne dane podaj jeszcze raz!" << endl; cin.sync(); cin.clear(); cin >> * pojesil; } cout << "Podaj predkosc maksymalna: " << endl; cin >> * speedmax; while( !cin.good() ) { cout << " Bledne dane podaj jeszcze raz!" << endl; cin.sync(); cin.clear(); cin >> * speedmax; } } }
int main()
{ char marka[ 3 ][ 20 ]; char model[ 3 ][ 20 ]; int pojesil[ 3 ]; int speedmax[ 3 ]; wprodanych( marka, model, & pojesil, & speedmax ); getch(); return 0; }
|
|
pekfos |
» 2018-03-19 21:20:24 nie może prze konwertować 'char *[20] do char ** dla argumentu 1. |
Co..? Jaki kompilator ci coś takiego napisał..? GCC mówi (z nawiasem!) error: cannot convert 'char (*)[20]' to 'char**' for argument '1'
void wprodanych( char( * marka )[ 20 ], char( * model )[ 20 ], int * pojesil, int * speedmax ); wprodanych( marka, model, pojesil, speedmax ); A Visual sugeruje w błędzie użycie zapisu char marka[][20], jedno i drugie jest równoznaczne. |
|
marcinpro Temat założony przez niniejszego użytkownika |
» 2018-03-19 21:49:36 Czyli nie rozumie komunikatów z kompilatora. Mimo wszystko program z zadania udało się zrobić. #include <iostream> #include <conio.h>
using namespace std;
void wprodanych( char( * marka )[ 20 ], char( * model )[ 20 ], int * pojesil, int * speedmax )
{ int i = 0; cout << "Witaj wprowadz 3 samochody do bazy danych podajac, marke ,mode, pojemnosc , max predkosc:" << endl; getch(); while( i < 3 ) { cout << "Wprowadz dane samochodu " << i + 1 << ':' << endl; cout << "Podaj marke: " << endl; cin.get( marka[ i ], 20 ); cin.sync(); cin.clear(); cout << "Podaj model: " << endl; cin.get( model[ i ], 20 ); cin.sync(); cin.clear(); cout << "Podaj pojemnosc silnika: " << endl; cin >> pojesil[ i ]; while( !cin.good() ) { cout << "Bledne dane podaj jeszcze raz!" << endl; cin.sync(); cin.clear(); cin >> pojesil[ i ]; } cin.sync(); cin.clear(); cout << "Podaj predkosc maksymalna: " << endl; cin >> speedmax[ i ]; while( !cin.good() ) { cout << " Bledne dane podaj jeszcze raz!" << endl; cin.sync(); cin.clear(); cin >> speedmax[ i ]; } cin.sync(); cin.clear(); i++; } }
void wysdanych( char( * marka )[ 20 ], char( * model )[ 20 ], int pojesil[], int speedmax[] )
{ cout << "Samochody: " << endl; int i = 0; int lacznapoje = 0; int avgtop = 0; while( i < 3 ) { cout << "Marka: " << marka[ i ] << endl; cout << "Model: " << model[ i ] << endl; cout << "Pojemnosc silnika: " << pojesil[ i ] << endl; cout << "Predkosc maksymalna: " << speedmax[ i ] << endl; i++; } for( i = 0; i < 3; i++ ) { lacznapoje += pojesil[ i ]; avgtop += speedmax[ i ]; } avgtop =( avgtop / 3 ); cout << "Laczna pojemnosc: " << lacznapoje << endl; cout << "Srednia maksymalna predkosc: " << avgtop << endl; }
int main()
{ char marka[ 3 ][ 20 ]; char model[ 3 ][ 20 ]; int pojesil[ 3 ]; int speedmax[ 3 ]; wprodanych( marka, model, pojesil, speedmax ); wysdanych( marka, model, pojesil, speedmax ); getch(); return 0; }
|
|
1 « 2 » |