所以这是我的代码
string name;
cout <<"\n Enter Your name : \n";
cin >> name;
printf("%s" , name);
并且出于一些奇怪的原因,代码块在此处崩溃了
为什么?
我怎么能解决它?
感谢
答案 0 :(得分:3)
您应该编译所有警告(例如g++ -Wall
)。你会得到一个有用的警告。你想这样使用c_str
printf("%s", name.c_str());
BTW,为什么要使用printf
,为什么忘记\n
格式字符串末尾的printf
? (或使用fflush
)
更好的代码:
cout << name << endl;
答案 1 :(得分:2)
如果您需要将std::string
传递给接受/使用C风格字符串(const char *
)进行输入的函数,请使用.c_str()
。它返回const char *
。
这是您在需要使用现有库,系统调用等时应该做的事情。对于您自己的代码,通常最好找到更多的C ++方法。
在这种情况下:
std::cout << name << std::endl;