【发布时间】:2015-01-25 12:54:20
【问题描述】:
我从这里读到了 substr
http://www.cplusplus.com/reference/string/string/substr/
这是我的代码:
int main()
{
std::ifstream in ("c:\\users\\admin\\desktop\\aaa.txt");
std::ofstream out ("c:\\users\\admin\\desktop\\bbb.txt");
std::string s ;
while ( getline (in,s) )
{
std::size_t startpos = s.find("test");
std::string str = s.substr (startpos);
out << str << endl;
}
in.close();
out.close();
}
我收到错误:已调用 R6010 abort()
注意:aaa.txt 包含空格/字符/html 标签
有什么想法吗?
【问题讨论】:
-
如果您提供的子字符串 not 存在,您是否阅读过
std::string.find返回的内容?您期望它不会失败,这可能没有用。 -
是否每一行都包含文本
"test"?如果不是,您认为find会返回什么,是什么让您认为该值将是substr的有效输入? -
嗯,我明白了,aaa.txt 中有 1 个单词“test”,并且没有重复。那么如何找到它!!!
-
@TharwatHarakeh:你可以通过检查
.find()`的返回值找到它。如果且仅当找到该字符串,则返回值将是找到它的位置。 -
感谢您的提示! <:>
标签: c++ visual-studio-2010 visual-c++ substr