#c
#c
Вопрос:
Как кто-то может получить только определенное слово в строке метода getline? Например:
Test.txt:
hi guys
im @@Paul tt [GET THIS]
string line;
string word;
ifstream file ("test.txt");
if (file.is_open()) {
while (getline(file, line)) {
if (line.find("@@Paul") != string::npos) {
strcpy(word, line.c_str());
}
}
}
Как я могу закодировать его так, чтобы, когда я обнаружу, что @@Paul
оно принимает только символы ( [GET THIS]
) после двойной табуляции ( tt
)?
Комментарии:
1. Используйте
std::istringstream
и сканируйте это, чтобы упростить себе жизнь.2.
strcpy(word, line.c_str());
это неудобно.3. strcpy со строкой в качестве dest? сколько предупреждений это генерирует?
Ответ №1:
это определение функции getline: istreamamp; getline (istreamamp; is, строка amp; str, разделитель символов);
Delim — это разделитель, который останавливает getline от чтения потока после данного символа. итак, вы можете сделать что-то вроде этого:
string trash;
string properline;
getline(file, trash, 't');
getline(file, trash, 't'); //second tab, still trash
getline(file, properline);