为了账号安全,请及时绑定邮箱和手机立即绑定

C++中不include<string>,为什么也能定义string 对象

C++中不include<string>,为什么也能定义string 对象

C++
鸿蒙传说 2018-11-09 11:15:31
#include <iostream>#include <vector>using namespace std;int main() {    int num;    cin >> num;    vector<string> vec;    for (int i = 0; i < num; ++i) {        string string1;        //cin >> string1;        getline(cin, string1);        vec.push_back(string1);    }    for (auto item : vec)        cout << item << endl;    return 0;}1)例如,这段代码,我没有#include<string>, 却能定义string string1,这是为什么?2)为什么输入的字符串个数是num-1,而不是num 问题补充:                        经测试,是因为cin自动忽略回车等不可见字符。那么在输入字符串时,会把回车符也当成字符串存入vec[0],导致可见字符串个数少1.而cin.get(),getchar()就能取得这样的不可见字符,所以在cin  >> num;之后加上cin.get()或getchar(),便可获取缓冲区的回车键。或者利用scanf("%d", &num), scanf也能获取不可见字符。
查看完整描述

2 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

 因为你include了iostream, iostream include了string


查看完整回答
反对 回复 2018-11-14
?
慕沐林林

TA贡献2016条经验 获得超9个赞

using namespace std


查看完整回答
反对 回复 2018-11-14
  • 2 回答
  • 0 关注
  • 810 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信