输入字符串数组一次一个字符

时间:2016-01-23 21:44:10

标签: c++ arrays string char file-handling

我遇到了一个问题,我需要从文本文件中加载数据,然后将其保存到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

有谁可以帮我弄清楚我做错了什么?

1 个答案:

答案 0 :(得分:0)

嗯......不完全确定你要做什么,但从它的外观来看,这不是你想要的吗?

(假设i是数组索引,而jstd::string.operator[],似乎就是这种情况。)

// ...

while (single != '.') {
    while (single != ',' && single != '.') {
        rollno[i] += single; // appending to string.
    }

    in.get(single); //getting the next line 
    i++;
}

here所述,您可以charstd::string追加operator+=

另外,如果我错了,请纠正我,但(single != ',' || single != '.')总会评估为真;如果single == ',',则single != '.',反之亦然。如果您希望它在遇到任何分隔符时停止处理,那么您使用逻辑AND以确保在任一检查失败时它停止。

(对于我可能错过的任何错字或错误道歉。)