【发布时间】:2017-10-04 18:32:15
【问题描述】:
试图在向量中逐字查找一行。
例如:
在一个文件中一些数据,比如:
ctrl+移动,查找
ctrl+c 复制,分组
ctrl+z 获取,给予
所有字母都很小。
然后我尝试读取向量中的文件 - 没关系
然后用户想输入:move
**我希望如果用户输入move,我会在向量中找到一行,其中包含单词move,然后对这一行执行一些操作。(例如:擦除)*
但是我做错了什么,因为我的循环在零处停止并且它只读取文件的第一个字符串?
代码如下:
void HotMap::test(std::string str)
{
std::string line;
std::vector<std::string> vec_keys;
std::string file_name_keys("read_keys.txt");
std::ifstream file_keys(file_name_keys, std::ios::in);
std::vector<std::string>::iterator iter_vec;
while (std::getline(file_keys, line))
{
for (auto & c : line) c = tolower(c);
vec_keys.push_back(line);
}
for (int i = 0; i < 3; i++)
{
vec_keys[i].find(str);
if (vec_keys[i].find(str))
{
std::string found_str;
std::cout << "Found:" << vec_keys[i];
//Just help to find the line.....
break;
}
}
}
【问题讨论】:
-
提示:
vector::find的返回类型是什么? -
@tobi303 哦,是的,它是索引。但是你能帮助你走上正确的道路吗?
-
@tobi303 你的意思是
string::find,对吧?
标签: c++ string file vector find