【c语言学习常见问题】- 控制台输入

本文详细介绍了C语言中scanf,getchar,gets和fgets四个常用输入函数的原理、参数、使用方法及安全性。scanf用于格式化读取,getchar读取单个字符,gets易引发缓冲区溢出,fgets则更安全且可限制字符数。
摘要由CSDN通过智能技术生成

前言

本文旨在记录我在学习c语言过程中遇到的问题,分析并提高学习的效果,如果有不对的地方,欢迎指证。

文中部分内容参考GPT,在此感谢ppword的支持,有了它就再也不用去找大神帮忙了。

在C语言中,有多个函数可以从控制台接收输入的信息。以下是其中几个常用的函数,以及它们的实现原理和参数的含义:

scanf

int scanf(const char *format, ...);

scanf函数是一个通用的输入函数,可以根据指定的格式字符串从控制台读取输入,并将读取到的数据存储到相应的变量中。它根据格式字符串来解析输入,并根据变量的类型来选择读取的方式。

参数

  • format:格式字符串,指定了要读取的数据的格式和类型。
  • …:变量参数列表,用于接收读取到的数据。

功能解析

  • 根据格式字符串中的格式指示符,scanf读取输入并解析为对应的数据类型。
  • scanf从输入流中一次读取一个字符,并逐个匹配格式指示符中的字符,直到匹配失败或读取完全部指示符。
  • 匹配成功的字符会被解析为对应的数据类型,并存储在相应的变量中。

说明

  • 当遇到格式指示符时,scanf会尝试从输入中读取数据。它会跳过任何空格或换行符,并尝试将符合指示符要求的字符序列解析为相应的数据类型。如果解析成功,则将数据存储到相应的变量中;否则,格式字符串后面的匹配将会中断。

  • 在这个例子中,scanf会读取一个整数,然后跳过一个字符(可能是空格或换行符),最后读取另一个整数。如果输入不符合指定的格式,则匹配将中断,并且未匹配的部分将留在输入缓冲区中。

实例

下面是一个示例代码,演示了scanf函数的使用:

#include <stdio.h>

int main() {
   
    int num1, num2;
    char ch;

    printf(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值