c++问题,为什么scanf("%s",str);这样是错的,我定义是string str的

 我来答
hi_xjy
推荐于2018-03-26 · TA获得超过2468个赞
知道大有可为答主
回答量:987
采纳率:0%
帮助的人:1578万
展开全部
scanf是C语言,string 是类(C++)。不能直接赋值吧
可以这样:
char buf[1024];
string s;
scanf("%s",buf);
s=buf;
最好不要混合使用C和C++的IO库。直接用cin
#include <iostream>
#include <string>
using namespace std;
string s;
cin >> s;
kylemick
2010-09-07 · TA获得超过609个赞
知道小有建树答主
回答量:755
采纳率:0%
帮助的人:410万
展开全部
因为是scanf(%s)你这个是要给一个char*类型的读取,而不是给string类型的,你引用的参数是string类型的,必须是错误的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nanhay
2010-09-07 · TA获得超过1173个赞
知道小有建树答主
回答量:824
采纳率:0%
帮助的人:1034万
展开全部
既然是C++,就没必要搞得不C,又不是C++的
直接用 cin>>str;

scanf("%s",str); //还需添加头文件 #include<stdio.h>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
捡到的幸福
2010-09-07 · TA获得超过1282个赞
知道小有建树答主
回答量:568
采纳率:0%
帮助的人:363万
展开全部
改成char str[100]就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式