c ++ string.find () для определенных значений - PullRequest
0 голосов
/ 14 декабря 2011

Я использую string.find () внутри оператора ASSERT, чтобы попытаться сопоставить пару разных фрагментов текста. Тесты проваливаются, когда я их запускаю. Можете ли вы сказать мне, что я делаю не так. Мои попытки ниже.

вот пример, который профессор дал нам Пример:

Coffee
16
0.95
10

TS_ASSERT(string::npos != tmpstr.find("Coffee\t\t10\t9.5"));//this works

конец примера

Sausage-large
11.10
9

TS_ASSERT(string::npos != tmpstr.find("Sausage-large\t11.10\t9"));  //fails



Fries-large
Remember to salt a lot
2.35
20

TS_ASSERT(string::npos != tmpstr.find("Fries-large\tRemember to salt a lot\t2.35\t20")); //fails

stringstream outThing;
        printSummary(outThing, allProdList);
        string tmpstr = outThing.str();
        TS_ASSERT(string::npos != tmpstr.find("Fries-large\nRemember to salt a lot\n2.35\n20"));
        outFile << tmpstr;
        stringstream outThing2;

1 Ответ

0 голосов
/ 14 декабря 2011

\t не является разделителем строк. Попробуйте \n (Linux и Unix) или \r\n (Windows), как

TS_ASSERT(string::npos != tmpstr.find("Sausage-large\n11.10\n9"));
...