我遇到了一个问题,我需要从文本文件中加载数据,然后将其保存到string
类型的数组中。我的方法是将数组视为2D数组,但char
类型。
这是我的代码:
string *rollno;
rollno=new string[2];
string line;
ifstream in("file.txt",ios::app);
int i=0;
char single;
in.get(single);
while (single != '.') {
for (int j=0; single!=',' || single!='.'; j++) {
rollno[i][j]=single;\\saving in array character wise
}
in.get(single);\\getting the next line
i++;
}
cout<<rollno[0]<<endl<<rollno[1];\\checking
有谁可以帮我弄清楚我做错了什么?
答案 0 :(得分:0)
嗯......不完全确定你要做什么,但从它的外观来看,这不是你想要的吗?
(假设i
是数组索引,而j
是std::string.operator[]
,似乎就是这种情况。)
// ...
while (single != '.') {
while (single != ',' && single != '.') {
rollno[i] += single; // appending to string.
}
in.get(single); //getting the next line
i++;
}
如here所述,您可以char
向std::string
追加operator+=
。
另外,如果我错了,请纠正我,但(single != ',' || single != '.')
总会评估为真;如果single == ','
,则single != '.'
,反之亦然。如果您希望它在遇到任何分隔符时停止处理,那么您使用逻辑AND以确保在任一检查失败时它停止。
(对于我可能错过的任何错字或错误道歉。)