**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
昨天关门了。
Improve this question
std::string line;
std::ifstream myfile("C:/Users/mathk/source/repos/Cooler/Cooler/Control/Saves/cash.txt");
if (myfile.is_open())
{
while (getline(myfile, line))
{
std::cout << line << '\n';
}
cash = std::stoi(line);
myfile.close();
}
std::ifstream myfile2("C:/Users/mathk/source/repos/Cooler/Cooler/Control/Saves/gems.txt");
std::string line2;
if (myfile.is_open())
{
while (getline(myfile2, line2))
{
std::cout << line2 << '\n';
}
gems = std::stoi(line2);
myfile2.close();
}
std::ifstream myfile3("C:/Users/mathk/source/repos/Cooler/Cooler/Control/Saves/multiplier.txt");
std::string line3;
if (myfile3.is_open())
{
while (getline(myfile3, line3))
{
std::cout << line3 << '\n';
}
multi = std::stoi(line3);
myfile3.close();
}
label2->Text = "" + cash;
label3->Text = "Multi: " + multi;
label4->Text = "Gems: " + gems;
我得到这个错误:
System.Runtime.InteropServices.SEHException: 'External component has thrown an exception.'
我尝试将文本存储到int
变量中,但没有成功。所有文本文档中只有一个数字。
顺便说一句:我正在使用一个带有C++的CLX .NET框架应用程序。
1条答案
按热度按时间icomxhvb1#
在所有这三种情况下,您都是在 *
std::getline()
无法将数据读入std::string
* 之后在std::string
* 上调用std::stoi()
由于std::string
不表示有效的整数值,std::stoi()
抛出一个您没有捕获的异常,因此它越过边界进入调用您的C++代码的.NET框架,后者然后抱怨该异常。您没有显示文本文件的实际外观,但根据您的语句“There is only one digit in all text docs",您根本不需要
std::getline()
循环,而是使用operator>>
从每个文件读取整数值,例如: