我正在从文本文件中读取行,以查找具有3个选项的状态,可以是OUT或Discontinued或Cancelled
我这样做:
ifstream inFile("DVD_list.txt");
string line;
char status;
while ( getline (inFile,line) ) {
std::size_t pos = line.find("Out" || "Discontinued"|| "Cancelled");
}
return 0;
如何将find函数与表达式一起使用?
答案 0 :(得分:3)
if((pos = line.find("Out")) != string::npos)
{
// handle Out
}
else if((pos = line.find("Discontinued")) != string::npos)
{
// handle Discontinued
}
else if((pos = line.find("Cancelled")) != string::npos)
{
// handle Cancelled
}
else
{
// not found
}
可能需要确保没有检测到误报,例如“某些示例文本没有输出”!
答案 1 :(得分:0)
std::istringstream is( "I hope it won't rain today" );
auto x = std::find( std::istream_iterator<std::string>( is ),
std::istream_iterator<std::string>(),
"rain" );
if ( x != std::istream_iterator<std::string>() ) std::cout << *x << std::endl;
这是一个示例代码。
答案 2 :(得分:0)
find()只能匹配一个字符串常量,你必须调用它三次。 但您可以使用regular expression来匹配这三个单词并一次处理整行。