Предполагая, что вы уже знаете, как читать целую строку текстового файла, вы можете разграничить текст определенным символом (я использую ',' много).
Например, вы можете прочитать первую строку в «Питер, он мальчик». но если бы вы установили его как разделительную строку, это может выглядеть так: «Питер, он мальчик». то вы можете прокручивать каждый символ строки до определенного символа в вопросе = ',', и затем вы можете разбить строку соответствующим образом.
Нечто подобное может то, что вы ищете:
#include <string>
#include <sstream>
#include <vector>
int main()
{
vector<string> lines(3);
vector<string> names(3);
vector<string> descriptions(3);
lines.at(0) = "Peter,He is a boy.";
lines.at(1) = "Mary,She is a girl.";
lines.at(2) = "Tom,It is a cat.";
for(int i = 0; i < lines.size(); i++) {
for(int j = 0; j < lines[i].size(); j++) {
if(lines[i][j] == ',') {
for(int d = 0; d < j; d++) {
stringstream ss;
ss << lines[i][d];
ss >> names.at(i);
}
for(int d = j + 1; d < lines[i].size(); d++) {
if(lines[i][d] != '.') {
stringstream ss;
ss << lines[i][d];
ss >> descriptions.at(i);
} else {
break;
}
}
break;
}
}
}
}
EDIT: Этот код будет выглядеть на 3 пространств вместо одного символа «».
#include <string>
#include <sstream>
#include <vector>
int main()
{
vector<string> lines(3);
vector<string> names(3);
vector<string> descriptions(3);
lines.at(0) = "Peter,He is a boy.";
lines.at(1) = "Mary,She is a girl.";
lines.at(2) = "Tom,It is a cat.";
for(int i = 0; i < lines.size(); i++) {
for(int j = 0; j < lines[i].size(); j++) {
if(lines[i][j] == 0x20 && lines[i][j + 1] == 0x20 && lines[i][j + 2] == 0x20) {
for(int d = 0; d < j; d++) {
stringstream ss;
ss << lines[i][d];
ss >> names.at(i);
}
for(int d = j + 3; d < lines[i].size(); d++) {
if(lines[i][d] != '.') {
stringstream ss;
ss << lines[i][d];
ss >> descriptions.at(i);
} else {
break;
}
}
break;
}
}
}
}
Также маленький совет не вниз голосовать ответ, который на самом деле работает только потому, что это не быстрое решение вы надеялись, или вы этого не понимаете ..
Если у вас еще нет решения Google, попробуйте. Вы можете начать с http://stackoverflow.com/questions/236129/split-a-string-in-c – VolAnd
вы вообще что-то пробовали? прежде чем спрашивать, как это сделать? – Pandrei
Пожалуйста, покажите нам, что вы пробовали, чтобы мы могли помочь вам исправить его. –