菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

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() 获取多个单词。


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持