[C++]Problem z funkcja strncpy()
Ostatnio zmodyfikowano 2013-02-20 18:38
tomektr1 Temat założony przez niniejszego użytkownika |
[C++]Problem z funkcja strncpy() » 2013-02-19 19:19:51 tablice znaków. Próbuje to zrobić używając funkcji strncpy(). Napisałem taki fragment kodu: string imie, nazwisko, adres, kod_pocztowy, telefon;
cout << "Podaj nowe imie: "; cin >> imie; cout << "Podaj nowe nazwisko: "; cin >> nazwisko; cout << "Podaj nowy adres: "; cin >> adres; cout << "Podaj nowy kod pocztowy: "; cin >> kod_pocztowy; cout << "Podaj nowy numer telefonu: "; cin >> telefon;
strncpy( osoba[ ktory ].imie, imie, 20 ); strncpy( osoba[ ktory ].nazwisko, nazwisko, 30 ); strncpy( osoba[ ktory ].adres, adres, 100 ); strncpy( osoba[ ktory ].kod_pocztowy, kod_pocztowy, 30 ); strncpy( osoba[ ktory ].telefon, telefon, 15 );
Niestety przy kompilacji Dev wywala mi taki błąd przy każdej linijce: " no matching function for call to `strncpy(char[20], std::string&, int)' ", " char* strncpy(char*, const char*, size_t) ". Zrozumiałem, że muszę podać stałą wartość łańcucha znaków i faktycznie jeśli napiszę: strncpy( osoba[ ktory ].imie, "Jasiu", 20 ); strncpy( osoba[ ktory ].nazwisko, "Kowalski", 30 ); strncpy( osoba[ ktory ].adres, "Wygnajewo", 100 ); strncpy( osoba[ ktory ].kod_pocztowy, "55-555", 30 ); strncpy( osoba[ ktory ].telefon, "123456789", 15 );
Wtedy wszystko działa jak należy. Niestety w moim programie muszę użyć zmiennych string i nie wiem jak rozwiązać ten problem. Co mam podać jako drugi parametr strncpy(), żeby przekopiować to do tablicy char? A może jest jakaś inna sprytna funkcja, którą można do tego wykorzystać. Z góry dziękuje za wszystkie odpowiedzi. (PS tak wiem, do wczytywania adresu powinienem użyć "getline()") |
|
DejaVu |
» 2013-02-19 20:02:41 Nie używa się strncpy do pracy z std::string. |
|
domin568 |
» 2013-02-20 18:38:23 Nie zabardzo wiem co chciałeś w tym programie osiągnąć |
|
« 1 » |