我正在尝试从文本文件中读取,然后尝试将它们放在对象中。
但我不知道如何将一行分成两个变量(空格作为分隔符)。
文本文件格式如下(前2个条目):
Text1 [txt1]
This is a description of text 1.More description of Text 1 here blah blah blah.
Text2 [txt2]
This is the description of text 2.
我想将它们放入三个sperate变量,一个用于名称(Text1),类型是方括号([txt1],最后是描述(这是对文本1的描述。)
到目前为止,我有以下代码,它没有单独的Text1和[txt1]:
if (myfile.is_open()) {
string buffer;
string currentText= "empty";
string currentType= "empty";
string currentDescription = "empty";
while (!myfile.eof()) {
getline(myfile, buffer); // Would like to seprate this line into two variables
currentText = buffer;
if (buffer == "") continue;
getline(myfile, buffer);
currentDescription = buffer;
if (buffer == "") continue;
TextObj newtext(currentText, iWantToEnterTypeHere, currentDescription);
this->textVector.push_back(newText);
}
myfile.close();
我希望这是有道理的,我会感激任何帮助。 干杯
答案 0 :(得分:0)
#include <iostream>
#include <vector>
#include <sstream>
#include <fstream>
using namespace std;
int main() {
fstream myfile;
myfile.open ("example.txt");
if (myfile.is_open()) {
string line;
while (getline (myfile,line)) {
vector<string> tokens;
const string s = line;
char delim =' ';
stringstream ss(s);
string item;
while (getline(ss, item, delim)) {
tokens.push_back(item);
}
getline (myfile,line);
tokens.push_back(line);
//Here you can create object using token[0], token[1], token[2] and can remove cout statements
for(int i = 0; i < tokens.size(); i++) {
cout << tokens[i] << endl;
}
cout<<"=================\n";
}
}
myfile.close();
return 1;
}
我希望这会有所帮助。您可以按注释块中的指定创建对象并删除cout语句。添加它们只是为了补充说明。