Разграничение с помощью getline()

#c

Вопрос:

Я хочу разделить строки разделителем , используя getline()

  std::istringstream args("["2,3", 3]"); 
 std::string temp;
 std::string arg;
 std::vector<std::string> out_args;
 while(getline(args, temp, ',')) {
 }
 

моя проблема в том, что getline (), берущая «2,3», также разделяет его, я хочу разделить только в том случае, если разделитель не заключен в двойные кавычки.

Комментарии:

1. std::аргументы istringstream(«[«2,3″, 3]»); Это вообще компилируется?

2. Я хочу разделить только в том случае , если разделитель не заключен в двойные кавычки , вам понадобится что-то намного более сложное getline() . Анализировать строки в кавычках непросто. Все getline() , что делает, — это разделяет данные разделителем независимо от их контекста.

3. Вы пробовали «2,» ?

4. Я попробовал с , это не сработало @moi

5. Вам нужно использовать "["2,3", 3]" или R"(["2,3", 3])" в C 11 и более поздних версиях