string不能用scanf赋值
在使用c/c++的时候,经常有一些地方会混淆,虽然有的可以兼容,但是有的还需要注意一下。
今天遇到了一个不兼容的地方。
直接上代码:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
using namespace std;
int main() {
string s;//改为char[100]后就可以了
scanf("%s",s);
printf("%s", s);
return 0;
}
虽然可以输出,但是输出后,直接中断。
warning C4477: “scanf”: 格式字符串“%s”需要类型“char *”的参数,但可变参数 1 拥有了类型“std::string”
warning C4477: “printf”: 格式字符串“%s”需要类型“char *”的参数,但可变参数 1 拥有了类型“std::string”
C++博大精深