我是编程新手,我正在为数值分析类(class)编写一个将十进制转换为二进制的程序。我对如何处理可变形式的输入有点困惑。例如,输入可以是以下两种形式之一:
输入:15
或 输入:15 /2
如果只是这两种情况中的一种,我知道如何处理两种情况中的输入:
scanf("%d", &userInput);
和 scanf("%d/%d", &numerIn, &denomIn);
。
我尝试了很多策略,但都没有成功。我接近以下结果:
(1) int numerIn, denomIn = 1;
(2) printf("Enter decimal number: ");
(3) scanf("%d", &numerIn);
(4) if (!feof(stdin)) {
(5) scanf(" / %d", &denomIn);
(6) }
不幸的是,这并不顺利。我试过在第 3 行和第 5 行中的 %d 和/前后使用不同的空格组合,但无济于事。我还认为也许有一些方法可以编写程序,如果在第一个整数之后没有输入任何内容,程序可以知道自动默认使用 denomIn 中的默认值 1,但我无法弄清楚还是。
有没有办法解决我忽略的这个要求?我是 C 编程的新手,所以我很可能在这里犯了一个令人尴尬的新手错误。话虽这么说,是否有任何好的文章可以准确解释输入缓冲区的工作原理?这让我有点困惑。
提前致谢!在这一点上,任何见解都将不胜感激。
最佳答案
关于c - 如何在 C 中使用 scanf 设置部分默认输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598830/