Savail Temat założony przez niniejszego użytkownika |
Jak wpisać ciąg znaków zawarty w zmiennej typu char w tablicę? » 2010-07-09 18:15:13 Witam napisałem taki kod: #include <iostream> #include <conio.h> #include "ddtconsole.h" int main() { using namespace std; using namespace ddt::console; int ilosc = 0, i = 0, tel = 0, k = 0; char imie[ 20 ], nazwisko[ 20 ], uwagi[ 20 ]; cout << "Podaj ilosc osob ktore chcesz wprowadzic do skoroszytu: "; cin >> ilosc; char tabela[ ilosc ][ 200 ]; cout << "Podano liczbe: " << ilosc << ". Wprowadz dane: " << endl; while( ilosc > i ) { cout << "osoba nr " <<++i << " - Imie: "; cin >> imie; cout << "Nazwisko: "; cin >> nazwisko; cout << "Nr telefonu: "; cin >> tel; cout << "Uwagi: "; cin >> uwagi; tabela[ k ] = { imie, nazwisko, tel, uwagi }; k++; } clrscr(); cout << tabela[ 0 ]; getch(); return 0; } Błąd pojawia się w tej linijce: tabela[k] = {imie, nazwisko, tel, uwagi}; . Jak wpisac te zmienne: imie, nazwisko, tel i uwagi w ta tablice zeby bylo poprawnie? Bede ogromnie wdzieczny za kazda wskazowke |
|
DejaVu |
» 2010-07-09 18:39:54 strcpy( tabela[ 0 ], "jakis tekst" );
/edit: A tak w ogóle to poczytaj o strukturach. |
|
Savail Temat założony przez niniejszego użytkownika |
» 2010-07-09 20:10:32 Dzięki za podaną funkcję ale chyba nie nada sie do tego co ja chcem zrobic. ten kod pochodzi z zadania 2 z kursu http://kursy.ddt.pl/?LessonId=12 Mam dane wprowadzone od uzytkownika zapisac w tabeli i z tabeli je wyswietlic. Wlasnie mam problem z zapisaniem. Sorry ze glowe zawracam takimi prostymi dla niektorych rzeczami ale ja siedzialem nad tym kilka godzin i nic nie wykombinowalem a do struktur w kursie jeszcze nie doszedlem ^^ |
|
malan |
» 2010-07-09 22:02:42 |
|
VND |
» 2010-07-09 23:02:52 Jak było wspomniane, tu aż się prosi o strukturę. struct dane { char imie[ 20 ]; char nazwisko[ 20 ]; char uwagi[ 20 ]; int tel; };
dane osoba[ ile ];
for( int i = 0; i < ile; ++i ) { cin >> osoba[ i ].imie; cin >> osoba[ i ].nazwisko; }
Zamiast bawić się w tablice char, użyj zmiennych typu string, w końcu to c++. Kod wygląda ładniej ;) i nie musisz się przejmować jeśli ktoś będzie mieć nazwisko dłuższe niż 20 znaków. struct dane { string imie; string nazwisko; string uwagi; int tel; };
Poza tym pobieranie danych ze strumienia do tablicy bez określenia wielkości czytanych danych jest potencjalnie niebezpieczne. Gdy użytkownik poda więcej niż 20 znaków mogą zostać nadpisane inne dane. Aby się zabezpieczyć dopisz cin.width(20); |
|
dmx81 |
» 2010-07-09 23:07:50 zgadza sie, ze kurs trzeba przerobic przynajmniej 2 razy - w takim sensie, ze na poczatku wszytsko jest nowe, im dalej sie brnie, tym lepsze poznaje sie metody rozwiazania, po drugie coraz bardziej sie rozumie sens wczesniejszych lekcji, ktore wczesniej byly niejasne, dlatego czasem trzeba skakac przez niektore lekcje, aby do nich powrocic, przynajmniej taka moja opinia :) |
|
Savail Temat założony przez niniejszego użytkownika |
» 2010-07-10 08:58:52 No w końcu... Naprawdę wielkie dzięki za pomoc. Bardzo ciekawe rozwiązanie i wydaje się takie "wszechstronne". Jeszcze raz dzięki wszystkim za pomoc!! |
|
« 1 » |