c - 有没有办法在 C 中读取一个 c 字符串,然后使用一个 scanf 读取一个 int?

标签 c scanf

嘿, 我正在尝试使用此函数以使用列出的输入获得以下输出,“...”是我不确定要写什么的地方:

void Question8(void)
{
  char sentence[100];    
  int grade;    
  scanf(….);    
  printf("%s %d", sentence, grade);    
}

Input:
My CS Grade is 1000

Output:
My CS Grade is 100

然而,问题是我需要 scanf 读取一个 c 字符串,然后使用单个 scanf 命令读取一个 int,这甚至可能吗?

编辑: 我只能在三个句点(“...”)的位置编辑代码,我不能再使用任何东西了。我可以假设列出的输入是预期的,但我无法更改三个时间段之外的任何内容。 输出不包含拼写错误,此赋值的目的是使用标志和转义序列。

最佳答案

可以使用 scanf 读取预先格式化的字符串,但格式必须严格。 此版本将继续读取输入,直到遇到一个数字,然后读取一个整数。 这是您的代码:

  char sentence[100];
  int grade;
  scanf("%[^0-9] %d",sentence,&grade);
  printf("%s %d\n", sentence, grade);

关于c - 有没有办法在 C 中读取一个 c 字符串,然后使用一个 scanf 读取一个 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4848371/

相关文章:

用于打印未排序数组的唯一元素的 C 程序

c - 如何将两个灵活数组放入一个结构中?

c++ - 强制 sscanf 返回超过满足数量的参数

代码在循环的第二次运行时停止

c - 扫描成阵列

c - 如何在 Linux 上通过 C CLI 检查主目录快捷方式 ~

c - 元循环解释器的确切定义是什么?

c - 在 C 中执行文件操作时,数字被 append 而不是被添加到 int 变量中

c - scanf() 用于读取格式化输入

c - 读取逗号分隔的输入 `scanf()`