结构体可以这样定义调用吗
可以这样定义结构体吗?
struct data
{
int N;
int M; //字符串对的个数
map<string, string> word_map;//存储一些字符串对
vector<string> line; //存储一行文本
};
在main()函数里可以这样调用吗?
struct vector string stream 存储
cin>>data[j].N>>data[j].M;
cout<<data[j].N<<data[j].M<<endl;
for(int i=0;i<data[j].M;i++)
{
string first,second;
cin>>first>>second;
data[j].word_map.insert(make_pair(first,second));
}
string str;
getline(cin,str);
istringstream stream(str);
string word;
while(stream>>word)
{
data[j].line.push_back(word);
}
[解决办法]
不能,data是结构体,不能用作数组变量,你可以申明struct data datas[20];
[解决办法]
string first,second;
cin>>first>>second;
string str;
getline(cin,str);
cout<<str<<endl;
通过上面代码测试,最后会输出一个换行,也就是说cin对最后的换行符没有进行读取,而是留在了缓冲区中,所以getline读取的时候,会首先读取到换行,然后就返回了