gpt4 book ai didi

c - 如何在 C 中使用 scanf 设置部分默认输入?

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:21 25 4
gpt4 key购买 nike

我是编程新手,我正在为数值分析类(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 编程的新手,所以我很可能在这里犯了一个令人尴尬的新手错误。话虽这么说,是否有任何好的文章可以准确解释输入缓冲区的工作原理?这让我有点困惑。

提前致谢!在这一点上,任何见解都将不胜感激。

最佳答案

  1. 使用 fgets 读取整行.

  2. 使用 strtok解析该行。

fgetsstrtok 的链接提供了示例代码,您可以将其用作起点。

关于c - 如何在 C 中使用 scanf 设置部分默认输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com