C++里 为何不写include<string>但也可以创建string对象? 15
C++里为何不写include<string>但也可以创建string对象?c++不写 include<string>只写usingstd::string为什么...
C++里 为何不写include<string>但也可以创建string对象?c++ 不写 include <string> 只写 using std::string为什么也可以?
比如:
#include <iostream>
using namespace std;
int main()
{
string str1 = "aaabbbccc";
cout<< str1 << endl;
}
求解释,网上一堆破答案说“必须要include<string>,说什么这才是真正定义string的地方。 那为何我这里不include也能完美运行和使用string?? 展开
比如:
#include <iostream>
using namespace std;
int main()
{
string str1 = "aaabbbccc";
cout<< str1 << endl;
}
求解释,网上一堆破答案说“必须要include<string>,说什么这才是真正定义string的地方。 那为何我这里不include也能完美运行和使用string?? 展开
3个回答
展开全部
我今天也遇到了这个问题。
我在VS2019中写了一个短的测试程序:
#include <iostream>
using namespace std;
int main() {
string s;
cin >> s;
cout << s;
return 0;
}
这是可以正常运行的,我ctrl+鼠标左键点击“string”,可以发现在“xstring”中有关于string的定义:
那么xstring又在哪呢?
我ctrl+鼠标左键点击“std”,可以发现“xstring”是包含在std这个命名空间下的(图中第二行):
而我在“iostream”中搜索不到“string”的相关内容(右上角红色框框表示无匹配):
故对于VS2019平台而言,不包含<string>却能使用string的原因在于命名空间std中有关于string的定义。
这根据平台而言有所差别。
展开全部
#include<iostream>
#include<iomanip>
#include<fstream>
#include<string>
using namespace std;
int main()
{
ifstream input;
string inputfile;//string,下同
cout<<"please input inputfile name<eg.file_in.txt>"<<endl;
cin>>inputfile;
input.open("inputfile");//加;下同
ofstream output;
string outputfile;
cout<<"please input outputfile name<eg.file_out.txt>"<<endl;
cin>>outputfile;
output.open("outputfile");
return 0;
} //string类型定义在string文件中
#include<iomanip>
#include<fstream>
#include<string>
using namespace std;
int main()
{
ifstream input;
string inputfile;//string,下同
cout<<"please input inputfile name<eg.file_in.txt>"<<endl;
cin>>inputfile;
input.open("inputfile");//加;下同
ofstream output;
string outputfile;
cout<<"please input outputfile name<eg.file_out.txt>"<<endl;
cin>>outputfile;
output.open("outputfile");
return 0;
} //string类型定义在string文件中
追问
复制了一堆无关的代码
以后不要再瞎答了 我曹。 害得我找不到真正的答案!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为string类已经基本被包含在了iostream中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询