【发布时间】:2023-03-30 15:10:01
【问题描述】:
我的问题是,我想将一个字符串转换成一个长整数。为此,我以这种方式使用 istringstream:
long x;
string lString;
istringstream istr;
getLine(cin, lString);
istr.str(lString);
if(!(istr>>x)) return false; //Edited after answer below
(转换和cin其实是两种不同的方法,我只是把相关代码放在一起)。
如果我输入“1”,以下代码将返回 false,但如果我输入“1.0”,则不会。我可以搜索 .在字符串中,如果没有则添加它,但是没有将字符串转换为长字符串的方法吗?
【问题讨论】:
-
你为什么要这么做?请改用
std::stol。 -
问题在于如果转换不起作用,它会引发异常而不是返回 false。我必须知道字符串是否“无效”,但我不希望程序停止,而且我们还没有学习异常机制(这是学校的实际工作)所以我想我们不应该使用他们。不过我对此一无所知,无论如何我都可以使用它,所以,谢谢!
标签: c++ string istringstream