我正在学习C++,目前正在处理字符串和指针。
我在跟随一本练习书的内容,其中一个问题中我已经写出了下面的代码:
#include <iostream>
#include <string>
using namespace std;
int main(void){
string * firstName=nullptr;
string * lastName=nullptr;
string * displayName=nullptr;
cout << "Enter your first name: " << endl;
getline(cin,*firstName);
cout << "Enter your last name: " << endl;
getline(cin,*lastName);
displayName=new string;
*displayName= *lastName + ", " + *firstName;
cout << "Here's the information in a single string: " << displayName;
cin.get();
return 0;
}
为了更多地使用指针,我尝试将其与字符串混合使用,并因此使解决方案变得更加复杂。运行时我收到一个“未处理的异常:访问违例读取位置 xxxxxxxxx”。
请问有人可以建议一个解决方案,仍然使用指针和字符串,而不是 char 数组(我已经知道如何做到这一点)吗?
getline()
函数...只需将所有的string *x = nullptr;'
更改为string x;
或者在传递给getline()
之前像displayName
一样分配这些字符串。 - Yaniro