关于特定值的c ++ string.find()

时间:2011-12-14 18:12:53

标签: c++ regex string assert

我在ASSERT语句中使用string.find()来尝试匹配几个不同的文本。我运行时测试失败。你能告诉我我做错了吗?我的尝试如下。

这是教授给我们的一个例子 例如:

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 :(得分:-1)

\t不是行分隔符。尝试\n(linux&amp; unix)或\r\n(windows),如

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