尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

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

C 语言用户输入详解:scanf、fgets、内存地址解析及实用指南 C 语言中的用户输入您已经学习了printf()函数用于在 C 语言中输出值。要获取用户输入可以使用scanf()函数代码语言cAI代码解释// 声明一个整数变量用于存储我们从用户那里获得的数字 int myNum; // 提示用户输入一个数字 printf(请输入一个数字\n); // 获取并保存用户输入的数字 scanf(%d, myNum); // 输出用户输入的数字 printf(您的数字是%d, myNum);scanf()函数接受两个参数变量的格式说明符在本例中为%d和引用运算符myNum用于存储变量的内存地址。多个输入scanf()函数还允许进行多个输入例如在下面的例子中用户可以同时输入一个整数和一个字符代码语言cAI代码解释// 创建一个 int 和一个 char 变量 int myNum; char myChar; // 提示用户输入一个数字和一个字符 printf(请输入一个数字和一个字符然后按回车\n); // 获取并保存用户输入的数字和字符 scanf(%d %c, myNum, myChar); // 打印数字 printf(您的数字是%d\n, myNum); // 打印字符 printf(您的字符是%c\n, myChar);获取字符串输入您也可以获取用户输入的字符串代码语言cAI代码解释// 声明一个字符串 char firstName[30]; // 提示用户输入一些文本 printf(请输入您的名字\n); // 获取并保存文本 scanf(%s, firstName); // 输出文本 printf(你好%s, firstName);注意当在scanf()中处理字符串时您必须指定字符串/数组的大小在本例中我们使用了一个非常高的数字 30但至少可以确定它可以存储足够的名字首字母并且您不必使用引用运算符 ()。但是scanf()函数有一些限制它将空格空白、制表符等视为终止符这意味着它只能显示单个单词即使您输入了许多单词。例如代码语言cAI代码解释char fullName[30]; printf(请输入您的全名\n); scanf(%s, fullName); printf(你好%s, fullName); // 请输入您的全名John Doe // 你好John从上面的例子中您可能会期望程序打印John Doe但它只打印John。这就是为什么在处理字符串时我们经常使用fgets()函数来读取一行文本。请注意您必须包含以下参数字符串变量的名称、sizeof(string_name)和stdin代码语言cAI代码解释char fullName[30]; printf(请输入您的全名\n); fgets(fullName, sizeof(fullName), stdin); printf(你好%s, fullName); // 请输入您的全名John Doe // 你好John Doe使用scanf()函数获取单个单词作为输入而对于多个单词则使用fgets()函数。C 语言中的内存地址当 C 语言中创建一个变量时就会为该变量分配一个内存地址。内存地址是变量在计算机内存中存储的位置。当我们为变量赋值时值就存储在这个内存地址中。要访问它可以使用引用运算符 ()结果表示变量的存储位置代码语言cAI代码解释int myAge 43; printf(%p, myAge); // 输出 0x7ffe5367e044注意内存地址是以十六进制形式表示的 (0x..)。在您的程序中您可能不会得到相同的结果因为这取决于变量在计算机内存中的存储位置。您还应该注意myAge通常被称为 指针。指针基本上是将变量的内存地址作为其值存储。要打印指针值我们使用 %p 格式说明符。为什么知道内存地址有用指针在 C 语言中很重要因为它们允许我们操作计算机内存中的数据 - 这可以减少代码量并提高性能。指针是 C 语言区别于其他编程语言如Python和Java的一大特点。
返回列表