输入
哈哈
输出:
----!悬a!--
----!6421728!--
----! !--
----!0齛!--
期望输出:
哈哈
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
string answer ;
printf("请输入人你要输入的字符串:\t");
scanf("%s",&answer);
printf("----!%s!--\n",answer);
printf("----!%d!--\n",answer);
printf("----!%c!--\n",answer);
printf("----!%s!--\n",answer);
return 0 ;
}
std::string是一个类,会有多个成员变量,除了存储字符串以外还有其他变量。所以&answer得到的只是类实例的首地址,并不是字符串实际存的位置,所以输出乱码。字符串的实际地址可以用answer.c_str()来获得,也就是可以这样写
scanf("%s",answer.c_str());
printf("%s",answer.c_str());
字符串std::string输入输出最好还是用cin和cout。