c - scanf 多个变量或一个变量
问题描述
在 C 中,我需要使用 scanf 输入四个变量
scanf("%c %d %d %d", &v1, &v2, &v3, &v4)
第一个变量可以取两个值“c”和“q”
当我输入 c 然后我输入其他变量时它会做一些计算但是当我想退出时我应该只输入'q'而不输入其余的变量但是 scanf 在我输入其余的变量之前不会前进
无论如何要解决它,我不确定是否可以使用 scanf 但如果有其他功能,那么我不介意使用它
解决方案
“有没有办法解决”
使用...读取一行用户输入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");
推荐阅读
- javascript - 使用 mocha 在 nodejs 中模拟一个函数
- javascript - 如何从 JavaScript 中的“getCurrentPosition”中提取值?
- c++ - 使用自定义 less 运算符实现迭代 std::map 会减少它包含的元素
- javascript - 检查猫鼬模型是否有空属性
- r - 如何在 r 中避免这种 for 循环
- mysql - JetBrains 无法连接托管 MySQL 数据库
- jquery - Select2:数据在不选择选项时显示?
- moq - 如何使用 AutoFixture 和 AutoMoqCustomization 设置某些属性并将其他属性保留为默认值?
- javascript - 调整在 d3.js 图中绘制的图的大小
- flutter - 如何从 firebase_messaging 推送通知中获取时间?