když to udělám přes ten string, tak mi to chodí tuhle chybu:
Error 1 error C2664: 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::getline(_Elem *,std::streamsize)' : cannot convert parameter 1 from 'std::string' to 'char *' c:\documents and settings\... 19
Příspěvky odeslané z IP adresy 213.220.225.–
zkoušel jsem to změnit na tohle:
const int cNameLength = 16;
char playerName[cNameLength];
char nameLength[cNameLength];
std::cin >> nameLength[cNameLength];
strncpy(playerName, nameLength, cNameLength);
kompilace mi projde, ale když vložím nějaký text, chodí mi to chybu...
"Stack around the variable 'nameLength' was corrupted"
Zdravím dneska po druhé, mám další perličku:-)
mám třídu Player:
##
Soubor: Player.h
##
class Player
{
public:
Player();
~Player();
char getPlayer();
void setPlayer(char name);
private:
char playerName;
};
##
Soubor: Player.cpp
##
#include <iostream>
#include "Player.h"
Player::Player() {}
Player::~Player() {}
char Player::getPlayer()
{
return playerName;
}
void Player::setPlayer(char name)
{
playerName = name;
}
##
Potřeboval bych změnit tuhle funkci, aby bylo možno uložit jméno uživatele do proměnný, potom co se uživatel k tomu bude vyzván. Já jsem se snažil změnit playerName na pole char playerName[16], ale vždy byla někde chyba, se kterou jsem nevěděl co s ní. Pole na jméno do 16 písmen.
Další otázka zda-li je možné omezit cin přímo v konzoli, že nebude uživatel schopen psát dál? Napíše tedy max 16 znaků a dál už se nic objevovat nebude.
Díky moc za rady, hned jsem chytřejší:-) a jdu se registrovat
KIIV - jak to může ovlivnit bezpečnost? V čem se může hodit low level práce s pamětí?
Quiark - když říkáš, že je to blbost, tak minimálně to chce důvod + jiné řešení
strcpy mi příjde lepší, nemusím udávat velikost, díky
Zdravím,
začal jsem se učit C++ a došel jsem až ke strukturám a tady jsem se zasekl na chybě, takže budu rád za radu.
Mám strukturu:
struct employees {
char name[20];
int age;
};
employees person;
když vložím věk, tak je všchno v pořádku
person.age = 18;
když ale vložím jméno, hlásí to chybu
person.name = "Robert";
v čem je chyba? Co dělám špatně?