だから私は非常に単純な問題のように見えるものでいくつかの奇妙な問題を抱えています。
私はベクトルを持っています:
vector(string)collectionOfLines;
これは、.txtファイルから取得したテキスト行を保持します。テキストファイルの内容は次のとおりです。
「4
ディスク0.20.00005
マウス0.40.00002
キーボード0.30.00004
ネットワーク0.50.0001 "
collectionOfLines [0]="ディスク0.20.00005"
この文字列を「Disk」、「0.2」、「0.00005」の3つの異なる文字列に分割してから、これらの文字列を別のベクトルに配置しようとしています。
vector(string)collectionOfCommands;
これは、行文字列から部分文字列を取得し、それらを新しいベクトルに配置するための私のループです。
string deviceName;
string interruptProbability;
string interruptTime;
for(int i = 1; i < collectionOfLines.size(); i++) { // i = 1 because I am ignoring the "4" in the txt file
string currentLine = collectionOfLines[i];
int index = 0;
for(int j = 0; j < currentLine.length(); j++) {
if(j == 0) {
continue;
} else if(deviceName.empty() && currentLine[j-1] == ' ') {
deviceName = currentLine.substr(index, j-1);
index = j;
} else if (interruptProbability.empty() && currentLine[j-1] == ' ') {
interruptProbability = currentLine.substr(index, j-1);
index = j;
} else if (!deviceName.empty() && !interruptProbability.empty()) {
interruptTime = currentLine.substr(index, currentLine.length());
break;
} else {
continue;
}
}
collectionOfCommands.push_back(deviceName);
collectionOfCommands.push_back(interruptProbability);
collectionOfCommands.push_back(interruptTime);
}
これを実行するとエラーは発生しませんが、collectionOfCommandsの出力を出力すると次のようになります。
"ディスク
0.2 0.00
0.00005
ディスク
0.2 0.00
マウス0.40.00002
ディスク0.20.00
キーボード0.30.00004
ディスク0.20.00
ネットワーク0.50.0001 "
明らかに、この出力は、最初の出力である「ディスク」を除いて、完全に間違っています。
助けていただければ幸いです、ありがとうございます!!!!