c++ - 当数据行具有不同的有效格式时,如何在 C++ 中使用 sscanf?

标签 c++ scanf

如何扫描这种格式的字符串:name id str1 num1 str2 num2

注意事项:

  • if str1 = "NO"then num1 has a value,
  • 如果 str1 = "YES"那么 num1 没有值

例子1:阿里1 NO 200 NO 100

示例 2:Ali 1 YES NO 100

char name [10];
char str1 [4];
char str2 [4];
int id, num1, num2;

 sscanf(inputString, "%s %d %s %d %s %d",
                            name,  &id, str1, &num1, str2, &num2 );

当 str1="YES"时,我遇到一个问题,str2 没有取到正确的值!!

最佳答案

更改为:

char str1 [4];
char str2 [4];

允许 3 个字符加上一个 NULL 终止符。

关于c++ - 当数据行具有不同的有效格式时,如何在 C++ 中使用 sscanf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20733042/

相关文章:

c# - 字符串参数未正确编码到 C++ DLL

c++ - isPalindrome 函数 C++ 问题

c - 从文件中选择 float

c - scanf ("%s %s",缓冲区)不返回第二个字符串?

c - 关于 C 中的 scanf

c++ - C++ 编程语言,定义与声明练习(简单,如果需要 XD 的帮助很乏味)

c++ - 模板引用的类型推导

c++ - C++ 类中带有引用返回的运算符重载

c - 什么是标准输入以及它如何与 fscanf 一起使用?

c - 遇到 "\n"和 scanf 问题