Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++]Problem z funkcja strncpy()

Ostatnio zmodyfikowano 2013-02-20 18:38
Autor Wiadomość
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:

C/C++
string imie, nazwisko, adres, kod_pocztowy, telefon;

cout << "Podaj nowe imie: "; //wczytywanie nowych danych do tymczasowych zmiennych
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 ); //proba wczytania danych do char 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ę:

C/C++
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()")
P-76543
DejaVu
» 2013-02-19 20:02:41
Nie używa się strncpy do pracy z std::string.
P-76546
domin568
» 2013-02-20 18:38:23
Nie zabardzo wiem co chciałeś w tym programie osiągnąć
P-76585
« 1 »
  Strona 1 z 1