什么时候程序不加scanf语句

看程序的时候发现有的语句没加scanf,是随便加的吗

scanf()是输入语句,在要求你从键盘输入内容的时候才使用的

看你需不需要界面交互,scanf 是 scan format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入,和 printf 的功能正好相反。主要看个人需求,

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/756719
  • 这篇博客你也可以参考下:解决scanf获取输入数据时,遇到空格结束的问题
  • 这篇博客也不错, 你可以看下解决scanf获取输入数据时,遇到空格结束的问题
  • 除此之外, 这篇博客: scanf函数中输入格式及输入基本原理讲解中的 2)双引号下不同格式的输入 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    双引号内部如若不止"输入控制符",则输入时进行一一对应。
    介绍前,先讲一下分隔符

    1. 分隔符
      首先当我们要用scanf函数对 多个变量 进行输入时,除了在写scanf函数时 "输入参数"
      部分用逗号分隔开时,还得在运行代码从键盘输入的时候用 分隔符区分输入的值
      如以下,当我们对两整形变量输入值时
      在这里插入图片描述
      我们再输入的时候,为区分两个值,就用分隔符来区分。
      常见的分隔符有:
      空格回车Tab键
    2. 一一对应
      scanf函数与printf函数在 双引号内部 有着相同的逻辑,一一对应。printf是一一对应打印,
      scanf是一一对应输入。
    #include<stdio.h>
    int main()
    {
    	int n;
    	scanf("n=%d", &n);
    	printf("%d", n);
    	return 0;
    }
    

    这时运行代码后,进入输入,必须对应输入双引号下,不然报错
    正确对应输入后,取到我们想输入的值
    在这里插入图片描述
    不正确对应输入后,取不到我们想输入的值,如直接输入我们想要的10
    在这里插入图片描述

    什么也没取到,局部变量 n 未初始化,随机值。
    又如

    int main()
    {
    	int n;
    	scanf("20=%d", &n);
    	printf("%d", n);
    	return 0;
    }
    
    

    一样的道理,无论是何种形式。

    小结
    1)scanf函数 输入控制符 对输入的运用不同, 输入参数 为地址。
    2)scanf函数中输入控制符%d遇字母直接跳出缓冲区
    2)scanf函数的 双引号" " 下的内容,在从键盘上输入时要 采取一一对应 输入。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^