gpt4 book ai didi

c++ - 在 C++ 中解析格式化的用户输入

转载 作者:行者123 更新时间:2023-11-28 03:37:22 24 4
gpt4 key购买 nike

对于一个项目,我需要实现图形着色问题的解决方案。但是,输入需要具有特定的语法,我不知道如何解析这些语法以访问存储在变量中所需的数据。

输入约束是先输入颜色的数量,然后是顶点的数量,然后是边的序列。应以 (v1 v2) 格式输入边。该序列以 v1 = -1 终止。因此,(-1 0)(-1 -1)

所以输入最终会看起来像这样:

2 4 (0 1)(1 2)(2 3)(3 0)(-1 -1)

任何帮助将不胜感激,因为我什至不知道从哪里开始!我知道这里也有类似的问题,但是我不知道如何将他们的解决方案应用到这个特定的实现中。

最佳答案

尝试这样的事情:

#include <iostream>

static inline int error(int n) { std::cerr << "Input error!\n"; return n; }

int main()
{
int nc, nv; // number of colours and vertices

if (!(std::cin >> nc >> nv)) { return error(1); }

for (int i = 0; i != nv; ++i)
{
char lb, rb;
int v1, v2;
if (!(std::cin >> lb >> v1 >> v2 >> rb) || lb != '(' || rb != ')') { return error(1); }

std::cout << "We have a pair [" << v1 << ", " << v2 << "]\n";
}
}

请注意输入处理的关键原则:所有输入操作都出现在条件上下文中。正如@jedwards 所说,输入可以是任何std::istream,例如字符串流或文件流,或者如我的示例std::cin

关于c++ - 在 C++ 中解析格式化的用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10466984/

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