查看“C语言的输出和输入”的源代码
←
C语言的输出和输入
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
https://www.bilibili.com/video/BV1vR4y1H7MY/?p=9 示例:输入三角形的三条边,计算三角形的面积。使用海伦公式计算 [[文件:海伦公式.png|无|缩略图|600x600像素]] 开平方函数: https://zh.cppreference.com/w/c/numeric/math/sqrt 输出和输入函数的使用。 === 输出 === printf 函数称为格式输出函数,其关键字最末一个字符 f 就是“格式”(format)的意思。其功能是按用户指定的格式,把指定的数据显示到显示器上。 printf 函数调用的一般形式为:<syntaxhighlight lang="c"> printf("格式控制字符串", 输出列表); </syntaxhighlight> 其中格式控制字符串用于指定输出格式。格式控制串可由'''<big>格式字符串</big>'''和'''<big>非格式字符串</big>'''两种组成。 格式字符串是以 % 开头的字符串,在 % 后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。 如: “%d”表示按十进制整型输出; “%o”表示按八进制整型输出; “%x”表示按十六进制整型输出; “%ld”表示按十进制长整型输出; “%c”表示按字符型输出; “%f”表示按浮点数输出等。 非格式字符串在输出时原样打印,在显示中起提示作用。<syntaxhighlight lang="c"> #include<stdio.h> int main() { int a = 10; printf("十进制:%d 八进制:%o 十六进制:%x \n", a, a, a); return 0; } </syntaxhighlight><syntaxhighlight lang="console"> 十进制:10 八进制:12 十六进制:a </syntaxhighlight> <syntaxhighlight lang="c"> #include<stdio.h> int main() { int a = 10; float ft = 12.25; char ch = 'a'; printf("a = %d ft = %f ch = %c \n", a, ft, ch); return 0; } </syntaxhighlight><syntaxhighlight lang="console"> a = 10 ft = 12.250000 ch = a </syntaxhighlight> 输出列表中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。 === 输入 === scanf 函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 scanf 函数的一般形式:<syntaxhighlight lang="c"> scanf("格式控制字符串", 地址列表); </syntaxhighlight> 其中,格式控制字符串的作用与 printf 函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。 地址列表中给出各变量的地址。地址是由运算符“&”后跟变量名组成的。<syntaxhighlight lang="c"> #include<stdio.h> int main() { char ch; int a; float ft; scanf("%c %d %f", &ch, &a, &ft); printf("ch = %c a = %d ft = %f \n", ch, a, ft); return 0; } </syntaxhighlight>此时编译会报错: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. hello E:\record\2022\10\9\hello\hello.cpp 10 加入宏“#define _CRT_SECURE_NO_WARNINGS 1”后:<syntaxhighlight lang="c"> #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { char ch; int a; float ft; scanf("%c %d %f", &ch, &a, &ft); printf("ch = %c a = %d ft = %f \n", ch, a, ft); return 0; } </syntaxhighlight>编译运行并依次输入“x”“空格”“12”“空格”“12.25”:<syntaxhighlight lang="console"> x 12 12.25 ch = x a = 12 ft = 12.250000 </syntaxhighlight>'''<big>注意:使用 scanf 函数进行输入时不要给“\n”</big>'''<syntaxhighlight lang="c"> #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); // 12 23 34 printf("a = %d b = %d c = %d \n", a, b, c); return 0; } </syntaxhighlight>因为 scanf 函数中的格式字符串中占位符是以“空格”间隔的,所以在输入时也要输入空格,最后键入回车就代表输入完毕:<syntaxhighlight lang="console"> 12 23 34 a = 12 b = 23 c = 34 </syntaxhighlight>如果 scanf 函数中提供的格式字符串中占位符是以“逗号”间隔:<syntaxhighlight lang="c"> #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int a, b, c; scanf("%d,%d,%d", &a, &b, &c); // 12 23 34 printf("a = %d b = %d c = %d \n", a, b, c); return 0; } </syntaxhighlight>那么在编译运行时就要输入逗号才能正确输入:<syntaxhighlight lang="console"> 12,23,34 a = 12 b = 23 c = 34 </syntaxhighlight>如果再以空格分隔录入就会录入失败:<syntaxhighlight lang="console"> 12 23 34 a = 12 b = -858993460 c = -858993460 </syntaxhighlight> === 海伦公式的实现 === <syntaxhighlight lang="c"> #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<math.h> int main() { float a = 0, b = 0, c = 0, p = 0, s = 0; scanf("%f %f %f", &a, &b, &c); p = (a + b + c) / 2; s = sqrt(p * (p - a) * (p - b) * (p - c)); printf("s = %f \n", s); return 0; } </syntaxhighlight><syntaxhighlight lang="console"> 3 4 5 s = 6.000000 </syntaxhighlight>
返回至
C语言的输出和输入
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息