首页 > 解决方案 > scanf 多个变量或一个变量

问题描述

在 C 中,我需要使用 scanf 输入四个变量

scanf("%c %d %d %d", &v1, &v2, &v3, &v4)

第一个变量可以取两个值“c”和“q”

当我输入 c 然后我输入其他变量时它会做一些计算但是当我想退出时我应该只输入'q'而不输入其余的变量但是 scanf 在我输入其余的变量之前不会前进

无论如何要解决它,我不确定是否可以使用 scanf 但如果有其他功能,那么我不介意使用它

标签: c

解决方案


“有没有办法解决”

使用...读取一行用户输入fgets()

char buf[100];
if (fgets(buf, sizeof buf, stdin)) {

..然后扫描它

  char v1;
  int v2,v2,v3;
  int cnt = sscanf(buf, "%c %d %d %d", &v1, &v2, &v3, &v4);
  if (cnt >= 1 && v1 == 'q') Quit();
  else if (cnt == 4 && v1 == 'c') Do_stuff(v2,v3,v4);
  else puts("Bad input");

推荐阅读