声明一个字符指针
Declaring a char pointer
我正在尝试制作一个 login/register 项目,但我很难从这段代码中声明 char* tempUsername
(SIGSEVG 分段错误)
char *tempUsername, *tempPassword, *tempPasswordConfirm, *tempSecurityQuestion;
/*
no other declaration for tempUsername here
*/
std::cout<<"Enter your new username:\n";
std::cin>>tempUsername;
//process stops here
if(fileSearch(newFilename(tempUsername))) {
std::cout<<"Username already exists! Choose another username!\n";
}
else {
std::cout<<"Enter your password:\n";
std::cin>>tempPassword;
std::cout<<"Confirm your password:\n";
我很难理解指针的任何内容,所以任何建议都非常有用!
char *tempUsername
std::cin>>tempUsername;
这里的问题是您的指针未初始化。当您尝试从输入流中提取到未初始化的指针时,程序的行为将是未定义的。不要这样做。
您的目标似乎是读取一串用户输入。我可以推荐的解决方案是使用 std::string
class:
std::string tempUsername;
std::cin >> tempUsername;
无需使用指针来实现。
I can use a char* as an array of chars, is that true?
一般情况下是不正确的。如果你有一个 char*
指向数组 char
的一个元素,那么你可以使用那个 char*
作为迭代器来访问数组的元素。
我正在尝试制作一个 login/register 项目,但我很难从这段代码中声明 char* tempUsername
(SIGSEVG 分段错误)
char *tempUsername, *tempPassword, *tempPasswordConfirm, *tempSecurityQuestion;
/*
no other declaration for tempUsername here
*/
std::cout<<"Enter your new username:\n";
std::cin>>tempUsername;
//process stops here
if(fileSearch(newFilename(tempUsername))) {
std::cout<<"Username already exists! Choose another username!\n";
}
else {
std::cout<<"Enter your password:\n";
std::cin>>tempPassword;
std::cout<<"Confirm your password:\n";
我很难理解指针的任何内容,所以任何建议都非常有用!
char *tempUsername
std::cin>>tempUsername;
这里的问题是您的指针未初始化。当您尝试从输入流中提取到未初始化的指针时,程序的行为将是未定义的。不要这样做。
您的目标似乎是读取一串用户输入。我可以推荐的解决方案是使用 std::string
class:
std::string tempUsername;
std::cin >> tempUsername;
无需使用指针来实现。
I can use a char* as an array of chars, is that true?
一般情况下是不正确的。如果你有一个 char*
指向数组 char
的一个元素,那么你可以使用那个 char*
作为迭代器来访问数组的元素。