c++ - 如何从两个字符之间的文件中提取整数?
问题描述
我想从包含如下行的文件中提取特定数字(行继续,这是唯一重要的部分):
"https://stackoverflow.com/questions/ask?wizard=1";
在找到带有f.ignore(MAX_LONG_LINE, '\n')
. 但是当谈到在 url 中获取数字 1(它可以是任何数字)时,我不知道该怎么做。
我已经尝试过,getline(f, num, '"')
但它不支持整数,并且从字符串转换为整数对于我正在学习的内容和我的课程来说太先进了。必须有一个更简单的方法。在那之后,我尝试了,f >> num
但它会跳到下一个空格而不是'"'。
num应导致文件中 '=' 和 '"' 之间的数字,在示例中为 1,但可能不同。
提前致谢
解决方案
可 :
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
int main(int argc, char ** argv)
{
if (argc != 2) {
cout << "usage : " << argv[0] << " <file path>" << endl;
return -1;
}
ifstream in(argv[1]);
if (!in) {
cout << "cannot open " << argv[1] << endl;
return -1;
}
string line;
in >> line;
size_t p = line.rfind('=');
if (p == string::npos) {
cout << "invalid line '" << line << "', = is missing" << endl;
return -1;
}
stringstream ss(line.substr(p + 1));
int n;
string s;
ss >> n >> s;
if (s != "\";") {
cout << "invalid line '" << line << "', must be ...<number>\";'" << endl;
return -1;
}
cout << "number is " << n << endl;
return 0;
}
推荐阅读
- sql - 如何使用 T-SQL 从字符串中删除重复的空格
- jquery - jQuery复选框列表显示包含数据的项目
- css - 小屏幕的 Firefox 特定媒体查询
- php - 如何修复我的 PHP 密码验证码?
- ignite - Scoped vs Singleton在.net web api中点燃客户端节点
- .htaccess - .htaccess 带有查询字符串的永久重定向
- performance - 如何计算流水线处理器的平均 CPI?
- gitkraken - 如何在 Windows 上使用 Git 存储库路径从命令行启动 GitKraken?
- python - 将 id 值存储在字典或重新查询数据库中是否更有效
- python - 检查python中的二维列表中是否已经存在一个数字