gpt4 book ai didi

c++ - 在 C++ 中解析来自标准输入的字段

转载 作者:太空狗 更新时间:2023-10-29 22:58:29 24 4
gpt4 key购买 nike

如果我的 stdin 输入如下:

2014-01-23,  AA, 20
2014-05-30, BB,2 //notice that I might have optional space
2015-03-24, CC, 5
//...
//... and so on

我如何用 C++ 编写一个程序来有效地解析,以及后续字段?我真的被这个解析问题困住了。

我想对后续字段做的是将 AA, 20 存储为一个映射。所以 map[AA]=20 依此类推。

我自己可以。但我不知道如何阅读和解析它。请帮忙。


尝试:

int year, month;
int num;
string key;
map<string, int> mapping;
string s;
getline(cin,s, '-');
year=stoi(s);
getline(cin,s, '-');
month=stoi(s);
getline(cin,s, ',');
//reading the AA, BB, CC field;
getline(cin,s, ',');
for (int i=0; i<s.size(); i++);
if (s[i]==' ') s.erase(i,1);
key=s;
//now, reading the number field following AA,BB, CC
getline(cin,s,'\n');
for (int i=0; i<s.size(); i++);
if (s[i]==' ') s.erase(i,1);
num=stoi(s);
mapping[key]=num;

最佳答案

另一种选择是使用 std::regex (或者 Boost.Regex 如果你使用的是“古老的”编译器)

用这个匹配行

(\d{4})\-(\d{2})\-(\d{2}),\s*(.+),\s*(.+)

然后分别从匹配组\1、\2、\3、\4、\5中得到年、月、日、第一字段、第二字段

关于c++ - 在 C++ 中解析来自标准输入的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40353291/

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