专栏中心

EEPW首页 > 专栏 > Printf:读取用户输入

Printf:读取用户输入

发布人:0750long 时间:2009-07-29 来源:工程师 发布文章

Printf:读取用户输入

前面的程序很好,但要是如果能从用户那里读入值5和7而不是使用固定的值的话,那就更好了。可以改为下面的程序:

#include 

int main()
{int a, b, c;printf("输入第一个值:");scanf("%d",printf("输入第二个值:");
scanf("%d", c = a + b;printf("%d + %d = %d\n", a, b, c);return 0;}

以下是程序的执行过程:

C语言执行程序示例
HSW
C语言执行程序示例

请按照上例修改原来的程序,然后重新编译和执行并确保它能正常工作。注意scanf和printf都要使用格式字符串(可以键入man scanf获取更多信息)。还要注意a和b前面都有一个“&”。这是C语言中的取地址运算符,它会返回变数的地址(在我们讨论指针之前,这个符号没什么用)。在对单个字符,整数,或者浮点数形式的任何变量做标准输入,以及对结构形式(我们很快就会接触到)的任何变量做标准输入时,您都必须使用&运算符。如果您遗漏了&运算符,您在运行程序时会报错。您可以试试,这样就能看到这种运行错误是什么样子。

让我们通过一些变量来完全理解printf。这是最简单的printf声明:

printf("您好");

它的格式字符串告诉printf把“您好”二字发送到标准输出。对比:

printf("您好\n");

两者的区别是后者在“您好”后跟一个回车换行,一起送到标准输出。

下面这行显示了如何使用printf输出一个变量的值。

printf("%d", b)

%d是占位符,会在printf语句执行时替换为变量b的值。通常您需要把输出值嵌入到一些文字之中。一种方法是这样:

printf("温度是");
printf("%d", b);
printf(" 度\n");

更简单的方法是这样写:

printf("温度是 %d 度\n", b);

一个printf语句中可以使用多个%d占位符:

printf("%d + %d = %d\n", a, b, c);

在printf语句中,格式字符串包含的操作符数目和后面的变量的数目和类型一定要一致,这一点极为重要。例如,如果格式字符串包含有三个%d操作符,那么格式字符串后面必须紧接正好三个参数,且参数的类型和先后顺序必须和操作符指定的是一样的。

使用不同形式的占位符,printf可以打印所有的C标准类型:

  • int(整数)用%d
  • float(浮点数)用%f
  • char(单个字符)用%c
  • 字符串(字符数组,见后面讨论)用%s
在UNIX机器上要了解printf的更多细节,可以键入man 3 printf。如果使用任何其他C编译器,则您很可能在其附带手册或帮助文件中找到对printf的说明。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

Nios II无痛起步

资源下载 2007-12-26

力科示波器及其在嵌入式系统中的应用(华中科技大学)

视频 2011-04-26

预测性维护解决方案

Nios 的用户定义接口逻辑实例

英特尔携海信发布端侧会议领域垂域模型解决方案

外媒:英伟达也没想到H20被限制出口 在华营收或损失超百亿美元

RS上海新扩建分拨中心 巩固在华领先地位

视频 2011-05-04

OpenAI重磅推出o3/o4-mini新模型!能\"看图思考\"

ASML发布2025年第一季度财报

Nios II无痛起步

资源下载 2007-12-26

Melexis宣布中国战略新动向,强调供应链的本地化

国际视野 2025-04-17

Nios II的Boot过程分析

全球第一款28nm产品— Kintex-7 FPGA的 10Gbps 眼图演示

视频 2011-05-04

超越--赛灵思7系列28nm FPGA产品发布会

视频 2011-05-04

泰克闪耀2025慕尼黑上海电子展,引领测试技术新变革

低功率 RF 混频器增强了接收器性能

AI驱动pH监测解决方案实现更清洁的水资源

英特尔携手MAXHUB联合发布企业级AI PC

Vishay新款Gen 4.5 650 V E系列功率MOSFET具有卓越的性能

Nios II无痛起步

资源下载 2007-12-26
更多 培训课堂
更多 焦点
更多 视频

技术专区