C++ 点作为空格?

标签 c++

假设我有

int a; cin >> a;   
int b; cin >> b;
int c; cin >> c;  

我想知道如何从两个输入中获得相同的结果:

1.2.3 和 1 2 3

如果我输入 1.2.3,那么 a 为 1,b 为 2,c 为 3

最佳答案

您可以使用 std::scanf 来完成:

if (std::scanf("%d%*1[ .]%d%*1[ .]%d", &a, &b, &c) == 3) {
    ... // Input was successful
}

棘手的部分是 mat 说明符:%*1[.] 它扫描并忽略单个空格或单个点。

Demo.

关于C++ 点作为空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49033789/

相关文章:

c++ - 段错误 : "...no such file or directory"

c++ - 了解指向成员的指针运算符

c# - COM 对象清理

c# - COM 基本链接

c++ - 在 C++ 中获取硬编码内存地址的内容

c++ - 从 XML 文件中检索 CString 文件路径

c++ - 如何使用 C++ 计算召回率和精度?

c++ - 获取列的总计

c++ - STL图同步写入示例代码

C++ 这些是否构成内存泄漏?