嘿大家这是我的第一篇文章,所以如果我犯了任何错误,如没有足够的信息等,请让我知道,所以我不再让他们。while循环退出后,字符串的内容被删除?
所以我的问题是我需要采取一个文件的内容,然后将它们输入到一个字符串,我有工作。然而,在while循环结束后,如果我尝试在while循环外使用该字符串并处理字符串的内容。字符串是空白的,似乎没有内容。我通过使用std :: cout行来确定这一点。我相信这是一个范围问题,但我不知道如何解决它。以下是有关该问题的代码,任何提示或帮助将不胜感激!
std::string str;
std::ifstream file;
while(!file.eof()){
getline(file, str);
std::cout << str << "";
}
file.close();
std::cout << str << "";
std::map<std::string, int> map;
for(int i = 0; i < str.length(); ++i){
std::string sub = str.substr(i, k);
std::cout << sub << std::endl;
map.insert(make_pair(sub, 1));
}
std::cout << "" << std::endl;
此外,我试图向上斩串入大小k它是在代码的不同部分中定义的变量,所以我用C++中的SUBSTR方法,相信这是工作,因为当我把它放在while循环中,我可以打印出文件的内容,但格式是关闭的,我认为这是因为while循环运行的性质,但我不确定,如果我错了,请纠正我或有任何误解。
一个明显的错误,你不应该再犯的是,所示的代码不能满足所有的[MCVE]的要求。 –
好吧,我只是通读该文档,我明白,谢谢你的指针! – firetiger443