C 语言用户输入详解:scanf、fgets、内存地址解析及实用指南

这篇具有很好参考价值的文章主要介绍了C 语言用户输入详解:scanf、fgets、内存地址解析及实用指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C 语言中的用户输入

您已经学习了 printf() 函数用于在 C 语言中输出值。

要获取用户输入,可以使用 scanf() 函数:

// 声明一个整数变量,用于存储我们从用户那里获得的数字
int myNum;

// 提示用户输入一个数字
printf("请输入一个数字:\n");

// 获取并保存用户输入的数字
scanf("%d", &myNum);

// 输出用户输入的数字
printf("您的数字是:%d", myNum);

scanf() 函数接受两个参数:变量的格式说明符(在本例中为 %d)和引用运算符(&myNum),用于存储变量的内存地址。

多个输入

scanf() 函数还允许进行多个输入(例如,在下面的例子中,用户可以同时输入一个整数和一个字符):

// 创建一个 int 和一个 char 变量
int myNum;
char myChar;

// 提示用户输入一个数字和一个字符
printf("请输入一个数字和一个字符,然后按回车:\n");

// 获取并保存用户输入的数字和字符
scanf("%d %c", &myNum, &myChar);

// 打印数字
printf("您的数字是:%d\n", myNum);

// 打印字符
printf("您的字符是:%c\n", myChar);

获取字符串输入

您也可以获取用户输入的字符串:

// 声明一个字符串
char firstName[30];

// 提示用户输入一些文本
printf("请输入您的名字:\n");

// 获取并保存文本
scanf("%s", firstName);

// 输出文本
printf("你好,%s", firstName);

注意:当在 scanf() 中处理字符串时,您必须指定字符串/数组的大小(在本例中我们使用了一个非常高的数字 30,但至少可以确定它可以存储足够的名字首字母),并且您不必使用引用运算符 (&)。

但是,scanf() 函数有一些限制:它将空格(空白、制表符等)视为终止符,这意味着它只能显示单个单词(即使您输入了许多单词)。例如:

char fullName[30];

printf("请输入您的全名:\n");
scanf("%s", &fullName);

printf("你好,%s", fullName);

// 请输入您的全名:John Doe
// 你好,John

从上面的例子中,您可能会期望程序打印 "John Doe",但它只打印 "John"

这就是为什么,在处理字符串时,我们经常使用 fgets() 函数来读取一行文本。请注意,您必须包含以下参数:字符串变量的名称、sizeof(string_name)stdin

char fullName[30];

printf("请输入您的全名:\n");
fgets(fullName, sizeof(fullName), stdin);

printf("你好,%s", fullName);

// 请输入您的全名:John Doe
// 你好,John Doe

使用 scanf() 函数获取单个单词作为输入,而对于多个单词,则使用 fgets() 函数。

C 语言中的内存地址

当 C 语言中创建一个变量时,就会为该变量分配一个内存地址。

内存地址是变量在计算机内存中存储的位置。当我们为变量赋值时,值就存储在这个内存地址中。要访问它,可以使用引用运算符 (&),结果表示变量的存储位置:

int myAge = 43;
printf("%p", &myAge); // 输出 0x7ffe5367e044

注意:内存地址是以十六进制形式表示的 (0x..)。在您的程序中,您可能不会得到相同的结果,因为这取决于变量在计算机内存中的存储位置。

您还应该注意,&myAge 通常被称为 "指针"。指针基本上是将变量的内存地址作为其值存储。要打印指针值,我们使用 %p 格式说明符。

为什么知道内存地址有用?

指针在 C 语言中很重要,因为它们允许我们操作计算机内存中的数据 - 这可以减少代码量并提高性能。

指针是 C 语言区别于其他编程语言(如 PythonJava)的一大特点。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注文章来源地址https://www.toymoban.com/news/detail-776802.html

到了这里,关于C 语言用户输入详解:scanf、fgets、内存地址解析及实用指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言】scanf多组输入的三种方法!

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,相信大家都多多少少了用过scanf语句吧,但是对scanf函数没有全面的认识仅仅只是知道可以输入。    ⛳️ 今天博主就给大

    2024年02月06日
    浏览(46)
  • C++中的输入函数scanf使用方法详解

    一、scanf的基本用法 scanf函数是C和C++中常用的输入函数之一,可以从用户输入的标准输入流stdin中读取格式为指定类型的数据。其基本用法如下: 在上面的示例中,我们使用了scanf函数读取用户输入的整数,并通过printf输出了读取到的整数a的值。 需要注意的是,在对指针参数

    2024年02月07日
    浏览(30)
  • 【C语言】EOF搭配while循环来控制scanf输入的次数

    目录 EOF是什么? EOF搭配while的实际应用场景1 EOF搭配while的实际应用场景2 补充 后言 EOF , 在C语言的标准函数库中表示 文件结束符 (end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。 在文本文件中,数据都是以字符的ASC

    2024年02月10日
    浏览(38)
  • C 语言中输入格式 scanf(“%2d%*2s%2d“,&a,&b)是什么意思

    代码  #include stdio.h int main() {     int a,b;     scanf(\\\"%2d%*2s%2d\\\",a,b);     printf(\\\"%d,%dn\\\",a,b); } 测试1 输入:123456 输出:12,56 测试2 12345678 输出:12,56 问题:%*2s是什么输入格式,有什么作用 答案: 表示的是忽略对应输入的这部分数,那么到底忽略那部分数呢?以下是详细分析 详解

    2024年01月24日
    浏览(59)
  • 【初阶C语言】关于scanf函数的超详细介绍和多组输入

    感谢各位可以光临娥子的作品   我们学习一个函数,要围绕三个点 :1.函数是什么  2.函数的用法   3.注意的细节 认识一个 函数,我们需要了解他的功能、返回值、接收的参数三个方面 函数原型  (1)功能介绍          scanf函数是一个输入函数 ,所以接收的参数类型需

    2024年02月08日
    浏览(54)
  • 爱上C语言:scanf、gets以及getchar输入字符串你真的懂了吗

    🚀 作者:阿辉不一般 🚀 你说呢: 不服输的你,他们拿什么赢 🚀 专栏:爱上C语言 🚀 作图工具:draw.io ( 免费开源的作图网站) 如果觉得文章对你有帮助的话,还请点赞,关注,收藏支持博主,如有不足还请指点,博主及时改正,感谢大家支持!!! 大家好啊😉!今天阿

    2024年02月05日
    浏览(55)
  • C语言中输入函数scanf在使用中不能加上换行符号\n

    (1)是一种输入函数。 (2)以vs编译器为例,vs编译器不提供该函数这样的写法,在使用中,需要先声明定义。在主函数前定义,如下: #define _CRT_SECURE_NO_WARNINGS 1 下面以一个题目举例:      题目为  计算n的阶乘 (1)错误的示范: (2)错误分析  要输入2次,为什么? (

    2024年02月06日
    浏览(42)
  • C语言(输入输出函数getchar,putchar、gets、puts,scanf,printf的功能以及用法)

    int getchar( void ); 返回值为int,所以需要用一个int变量来接收,不管输入几个字符,每次都只接收第一个字符,常与while和putchar配合使用。 从下面这张图可以看出,输入一个空格也会打印 当然,获取一个字符用得不多,每次都需要获取一串,所以我们可以配合while来使用。 用

    2024年02月02日
    浏览(50)
  • C语言第四弹---printf和scanf详解

    ✨ 个人主页: 熬夜学编程的小林 💗 系列专栏: 【C语言详解】 【数据结构详解】 printf函数为库函数,给uu们两个查看库函数的方式,第一个下载msdn软件进行查找相关库函数知识,第二个用cplusplus网站查询库函数(建议使用旧版的,旧版的有搜索功能)。 cplusplus网站链接 旧版

    2024年01月21日
    浏览(44)
  • C语言—printf和scanf详解(万字笔记更新中....)

    在写c语言时,printf和scanf是我们必不可少且常用的,相信大多数人对它们俩的认识只是停留在表面上,并没有深入了解过它们吧,那么这一篇文就来深入对它们俩来说道说道 Printf:输出函数,将参数输出到屏幕上 案例: printf( \\\"hello nworldn\\\" ) :将hello word打印到屏幕上

    2024年03月23日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包