gpt4 book ai didi

C++ substr 用法返回错误

转载 作者:搜寻专家 更新时间:2023-10-31 00:42:35 24 4
gpt4 key购买 nike

第一个问题

我尝试了以下操作

myfile.open("file.txt");
while(!myfile.eof())
{
getline(myfile,sline);
delimiter = sline.substr(2,1);
}

cout << "Delimiter is " << delimiter << endl;

我的file.txt是这样的

AD#Andorra#AN#AD#AND#20.00#Andorra la Vella#Europe#Euro#EUR#67627.00
AE#United Arab Emirates#AE#AE#ARE#784.00#Abu Dhabi#Middle East#UAE Dirham#AED#2407460.00

它在运行时返回一个错误代码

terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::substr
Aborted (core dumped)

我想得到值 # 作为我的分隔符,

第二个问题

我的 .h 文件得到了这个声明

#define LINE_DATA_DELIMITER     ","

我可以将 LINE_DATA_DELIMITER 重新定义为“#”,而不是使用“#”,我可以使用变量分隔符的值来定义吗?

更新:问题 1 已解决。我需要关于第二个问题的帮助谢谢!

最佳答案

它的发生是因为你运行循环的次数太多了。 eof 条件仅在一次读取失败后发生。

试试这个

myfile.open("file.txt");
while(getline(myfile,sline))
{
delimiter = sline.substr(2,1);
}

关于C++ substr 用法返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11827681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com