printf函数和scanf函数
写在前面:
在刚开始学习C语言的时候,用的比较多的两个库函数就是printf函数和scanf函数,但是好多同学在用的时候经常会犯一些没有注意到的小错误,但是有的时候这些小错误就是致命的.下来我们一起学习学习这两个C语言中的库函数.
一.printf函数
函数声明: 发送格式化输出到标准输出stdout
int printf(const char *format, ...)
函数返回值:如果成功则返回输出的字符总数,否则返回一个负数.
printf函数的调用格式为: printf("格式化字符串",参量表);
#include <stdio.h>int main(){int a = 10;printf("%d\n",a);
}#include <stdio.h>
int main()
{char ch = 'A';char str[20] = "www.runoob.com";float flt = 10.234;int no = 150;double dbl = 20.123456;printf("字符为 %c \n", ch);printf("字符串为 %s \n" , str);printf("浮点数为 %f \n", flt);printf("整数为 %d\n" , no);printf("双精度值为 %lf \n", dbl);printf("八进制值为 %o \n", no);printf("十六进制值为 %x \n", no);return 0;
}
规定符:
- %d 十进制有符号整数
- %u 十进制无符号整数
- %f 浮点数
- %s 字符串
- %c 单个字符
- %p 指针的值
- %e 指数形式的浮点数
- %x, %X 无符号以十六进制表示的整数
- %o 无符号以八进制表示的整数
- %g 把输出的值按照 %e 或者 %f 类型中输出长度较小的方式输出
- %p 输出地址符
- %lu 32位无符号整数
- %llu 64位无符号整数
二.scanf函数
函数声明:从标准输入stdin读取格式化输入.
int scanf(const char* format,...);
scanf函数的调用格式为: scanf("格式化字符串",参量表);
函数返回值: 如果成功则返回成功匹配和赋值的个数.如果到达文件末尾或发生读错误,则返回EOF.
format:格式化字符串,包含以下各项中的一个或多个字符:空格字符,非空格字符和format说明符.
scanf类型说明符:
很多同学刚开始学习scanf函数的时候,在vs编译器上经常会报下面的错误.很多同学会误以为是自己代码哪里存在语法错误.
This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
翻译下来就是: 此函数或变量可能不安全。考虑使用scanf_s代替。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS警告。
其实是vs编译器认为scanf函数不安全,需要替换为scanf_s使用.或者在文件的第一行进行宏定义:
#define _CRT_SECURE_NO_WARNINGS 1
实例1:
#include<stdio.h>
int main(void) { int a,b,c; printf("请输入三个数字:");scanf_s("%d%d%d",&a,&b,&c); printf("%d,%d,%d\n",a,b,c);return 0;
}
解析:
- &a,&b,&c中的&是取地址运算符,分别获取这三个变量的内存地址
- %d%d%d是按照十进制格式输入三个数值.输入时,在两个数据之间可以用一个或多个空格,tab键,回车键分割.
- 注意:如果使用,分隔输入的%d,则相应的输入也需要添加,.前后的形式必须一,否则就会出错
输入数据时格式和格式化字符串不一致时就会出错,这里应该特别注意.
实例2:
#include<stdio.h>
int main(void){char a,b,c;printf("请输入三个字符:");scanf_s("%c%c%c",&a,&b,&c); printf("%c,%c,%c\n", a,b,c);return 0;
}
注意:在用%c输入时,空格和"转义字符"均作为有效字符.
实例3:
注意:在较新版本vs中输入字符串时,需要给scanf函数指定一个参数,告诉编译器预留多大的空间来存储字符串sizeof()或直接给定一个数字大小,够用就可以.否则就会无输出程序直接结束.
#include <stdio.h>int main(){char str1[20], str2[30];printf("请输入用户名:");scanf_s("%s", str1,20); //20可以替换为sizeof(str1)printf("请输入您的网站:");scanf_s("%s", str2,20); //20可以替换为sizeof(str2)printf("输入的用户名:%s\n", str1);printf("输入的网站:%s", str2);return(0);
}
没有失败,只是暂时的不成功.
printf函数和scanf函数相关推荐
- 详解c语言main函数、printf函数、scanf函数与va家族
C语言入门与提升(1)--详解c语言main函数.printf函数与scanf函数,与va家族 前言: 为什么要学习C语言呢?C语言作为最古老的语言之一,走过了半个多世纪的风风雨雨,至今仍然长盛不衰, ...
- c语言scarf函数原型,scanf 函数原型.doc
scanf 函数原型.doc scanf 函数原型 scanf 函数原型 int scanf( const char *format, ... ); scanf()函数是格式化输入函数,它从标准输入设 ...
- 【C语言:精准打击】scanf_s()函数与scanf()函数的相关解决方案
国际标准ANSI C中没有scanf_s()函数,只有scanf()函数,scanf()函数在读取时不检查边界,所以可能会造成内存泄露.故VC++2005/2008中提供了scanf_s()函数,在调 ...
- C语言带空格的字符串输入——gets()函数、scanf()函数缺陷以及改进后的gets_s()函数、scanf_s()函数的简单用法(上)
**在C语言中,带空格的字符串输入问题相对而言还是比较"坑"的,所以呢,小编就决定要专门谈一谈这个问题,希望对于初学者能够有所帮助. 该篇主要简述了C语言中gets()函数以及sc ...
- 【printf函数与scanf函数】(学习笔记5--标准I/O函数)
标准I/O函数 一.printf函数 二.scanf函数 一.printf函数 printf函数通常被称为"格式化打印函数",它的第一个参数称为"格式化字符串" ...
- 8、C语言printf函数与scanf函数
一.printf()函数 1.函数原型 标准格式化输出函数:函数可以按用户指定的格式,把指定的数据显示到显示器屏幕上 int printf(const char *format, ...) 参数1 : ...
- [C语言]printf函数和scanf函数的返回值
先来看一道题 #include<stdio.h> int main() {int a=43;printf("%d\n",a);return 0; } 看完嘴角疯狂上扬, ...
- C语言/gets()函数和scanf()函数关于字符串的输入
提示:本文是关于C语言字符串输入的两个函数的介绍 文章目录 前言 一.gets()函数 二.scanf()函数 总结 前言 在C语言中,有很多关于输入字符串的函数.在学习和使用C语言时,我们也无法避免 ...
- 将一个3*3的矩阵转置,用一个实现。在主函数中用scanf函数输入以下矩阵元素
借用谭老师的书,惭愧.
最新文章
- 浅析网站设计风格对网站建设的重要性
- 直接调用支持ACE的product search API
- Jsp+Servlet+MYSQL注册登录案例(界面难看,ε=(´ο`*)))唉)
- [css] 移动页面底部工具条有3个图标,如何平分?在设置边框后最后一个图标掉下去了怎么办?
- c语言 数组循环左移m位
- 【Python】Pygame入门
- JAVA大数据-Week3-DAY5
- 商务英语还是计算机专业好,是读广东外语外贸大学计算机专业好还是广东工业大学计算机专业好...
- 阮一峰ES6旅程:入门布局
- 实验室一块GPU都没有?这个云平台直接送3090、A100免费无门槛代金券!
- 【蓝桥杯选拔赛真题30】Scratch小猫奔跑 少儿编程scratch蓝桥杯选拔赛真题讲解
- python做有道翻译接口的时候报UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid sta
- 怎么锻炼java逻辑思维_托马斯逻辑训练板技高一筹,锻炼编程逻辑思维能力
- 使用pygame制作贪吃蛇小游戏
- 电脑端微信文件的存储位置在哪?
- Python sorted Pandas sort_values 中文拼音排序
- 1月5日 负数的十六进制如何表示。
- 如何写一篇好的技术文档
- vs code的设置
- 全网精华之C++11 60篇链接汇总