当前位置: 首页 > 编程日记 > 正文

C语言基础(12)-输入和输出

1. int scanf(const char *format, ...)

说明:scanf用于通过控制台输入字符串。

注意:

(1).通过scanf()函数输入的字符串,系统会自动在其后面补一个0,scanf默认回车和空格都是代表输入完成,这样会导致无法输入一个完整的字符串。

(2).scanf()函数并不检查char数组的下标,用户输入多少scanf就会保存多少,假如用户输入的字符长度超过了定义的char数组的长度,则会发生溢出。scanf函数是不安全的。

示例:

#include <stdio.h>
#pragma warning(disable:4996)void main() {char a[10] = {0};scanf("%s",a);printf("%s\n",a);system("pause");}

2. char *gets(char *str)

说明:从标准输入中读取一行,并将其存储到由str指向的字符串.

注意:

(1).gets函数只认回车代表输入完毕,空格只是一个普通字符而已,因此可以输出空格。

(2).gets函数同样有缓冲区溢出的问题。使用gets和scanf都会面临缓冲区溢出的问题,因此两者都不安全。

3. char *fgets(char *str, int n, FILE *stream)

说明:从标准输入中读取一行,并将其存储到由str指向的字符串.

注意:

(1).fgets函数有三个参数。第一个参数是char的数组,第二个参数是标明这个数组的大小,第三个参数如果是通过键盘输入可以固定写为stdin.

(2).fgets函数是安全的,不存在缓冲区溢出的问题。

(3).fgets函数在读取一个用户通过键盘输入的字符串的时候,同时把用户输入的回车键也作为字符串的一部分,因此使用fgets函数后在输出时,不需要添加\n。当输入长度超过了缓冲区长度时,多出的部分将会被截断。

#include <stdio.h>
#pragma warning(disable:4996)void main() {char a[10] = {0};fgets(a,sizeof(a),stdin);printf("%s",a);system("pause");}

4. int puts(const char *str)

说明:输出一个字符串。

注意:

(1).puts函数打印字符串,与printf不同,puts会在最后自动添加一个’\n’

(2).put函数不支持转义字符,比如%d,%s都不支持,puts函数只能简单输出一个字符串,而不能输出char,int,double等其它类型.

#include <stdio.h>
#pragma warning(disable:4996)void main() {char s[] = "hello world";puts(s);system("pause");}

#include <stdio.h>
#pragma warning(disable:4996)void main() {char s[] = "hello world";puts("%d%s",1,s);system("pause");}

5. int fputs(const char *str, FILE *stream)

说明:输出一个字符串。

注意:

(1).第一个参数是char的数组,第二个参数如果只是用puts在屏幕输出的话可以固定写成stdout

(2).fputs不会自动输出一个\n

(3).fputs是puts的文件操作版本

#include <stdio.h>
#pragma warning(disable:4996)void main() {char s[] = "hello world";fputs(s, stdout);system("pause");
}

转载于:https://www.cnblogs.com/yongdaimi/p/6297385.html

相关文章:

java static 可见性_Java多线程 synchronized与可见性的关系以及可见性问题总结

作者&#xff1a;七里香的编程之路出自&#xff1a;OSCHINA原文&#xff1a;my.oschina.net/u/4098550/blog/4548274能保证可见性的措施除了volatile 可以让变量保证可见性外.happens-before九大规则. 都是能够保证可见性的. 其中就包含了锁操作(synchronized 和 lock) 和 vola…

表达式树 java_表达树—构建表达式树、获取表达式(二)

public classExprTree {//最后访问头结点public BinaryTreeNode buildExprTree(char postfixExpr[],intsize){LinkedList stacknewLinkedList();BinaryTreeNode nodenull;for(int i0;inodenewBinaryTreeNode();node.setLeft(null);node.setRight(null);node.setData(postfixExp…

python 客户端 如何获取手机_Python学习---Django的request扩展[获取用户设备信息]

关于Django的request扩展【获取用户设备信息】settings.pyINSTALLED_APPS [...app01, # 注册app]STATICFILES_DIRS (os.path.join(BASE_DIR, "statics"),) # 现添加的配置,这里是元组&#xff0c;注意逗号TEMPLATES [...DIRS: [os.path.join(BASE_DIR, templates)…

: error c2062: 意外的类型“int”_Go 命令行解析 flag 包之扩展新类型

上篇文章 说到&#xff0c;除布尔类型 Flag&#xff0c;flag 支持的还有整型&#xff08;int、int64、uint、uint64&#xff09;、浮点型&#xff08;float64&#xff09;、字符串&#xff08;string&#xff09;和时长&#xff08;duration&#xff09;。flag 内置支持能满足大…

java英文字符串大小写转换 必须使用_【Java基础】之字符串大小写转换不利用API....

public class UpStr{static String str "AbcDeFdDSfgdsadeADFSAFCfdsa";public String transformUpperOrLower(String str, String type){//将字符串转换为char数组char[] ch str.toCharArray();if (type null || type.length() 0 || type.equals(""))…

.net core 17

转载于:https://www.cnblogs.com/qingwengang/p/6297486.html

vue中子组件和子组件之间怎么通信_vue.js组件之间如何通信?

vue.js组件之间如何通信&#xff1f;下面本篇文章就来给大家介绍一下Vue.js组件间通信方式。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。平时在使用Vue框架的业务开发中&#xff0c;组件不仅仅要把模板的内容进行复用&#xff0c;更…

以太坊RLP机制分析

目录 1 RLP 定义 2 RLP 编码规则 3 RLP 编码实例 4 RLP 分析 1 RLP 定义 RLP&#xff0c;即 Recursive Length Prefix, 递归长度前缀编码&#xff0c;是以太坊数据序列化的主要方法&#xff0c; 具有较好的数据处理效率&#xff0c;尤其是将长度和类型统一作为前缀&#xff0c;…

Android Studio导入Eclipse项目的两种方法

Android Studio导入Eclipse项目有两种方法&#xff0c;一种是直接把Eclipse项目导入Android Studio&#xff0c;另一种是在Eclipse项目里面进行转换&#xff0c;然后再导入Android Studio。 1. 直接导入 打开Android Studio&#xff0c;如果里面已经打开了项目&#xff0c;选择…

mediawiki java api_维基百科 MediaWiki API 解析

使用开放的 API 做一个自己的小项目&#xff0c;是一个很好的学习方法。但好像开放的 API 选择并不多。这里给大家多一个选择&#xff0c;简单介绍一下维基百科使用的 MediaWiki API。简介先简单介绍几个容易混淆的概念。WikiWiki 是一种在网络上开放且可供多人协同创作的超文本…

elasticdump安装_elasticsearch导出、导入工具-elasticdump

elasticsearch导出、导入工具-elasticdumpelasticsearch 数据导入到本地&#xff0c;或本地数据导入到elasticsearch中&#xff0c;或集群间的数据迁移&#xff0c;可以用elasticsearch的工具—elasticdumpelasticdump 可以用用npm安装本地运行&#xff0c;也可以用docker容器运…

mysql 无法登陆_MySQL root用户无法登录原因及解决办法

MySQL root密码正确&#xff0c;却怎么也bai无法du从本地登录MySQL登录提示ERROR 1045 (28000): Access denied for user rootlocalhost (using password: YES)可能原因是mysql库中bai的user表缺少一个root指向host&#xff1a;localhost的数据项&#xff0c;只有一个root指向h…

Spring Boot启动过程(二)

书接上篇 该说refreshContext(context)了&#xff0c;首先是判断context是否是AbstractApplicationContext派生类的实例&#xff0c;之后调用了强转为AbstractApplicationContext类型并调用它的refresh方法。由于AnnotationConfigEmbeddedWebApplicationContext继承自EmbeddedW…

dom vue 加载完 执行_前端面试题——Vue

前言前几天整理了一些 html css JavaScript 常见的面试题(https://segmentfault.com/u/youdangde_5c8b208a23f95/articles)&#xff0c;然后现在也是找了一些在 Vue 方面经常出现的面试题&#xff0c;留给自己查看消化&#xff0c;也分享给有需要的小伙伴。如果文章中有出现纰…

查看某个存储过程

show create procedure 存储过程的名称; ##主从同步是会同步存储过程的 转载于:https://www.cnblogs.com/yangxiaochu/p/9397108.html

java中的分页 效率考虑_面试官:数据量很大,分页查询很慢,有什么优化方案?...

当需要从数据库查询的表有上万条记录的时候&#xff0c;一次性查询所有结果会变得很慢&#xff0c;特别是随着数据量的增加特别明显&#xff0c;这时需要使用分页查询。对于数据库分页查询&#xff0c;也有很多种方法和优化的点。下面简单说一下我知道的一些方法。准备工作为了…

dede 后台 mysql_织梦dedecms使用Mysql8.0无法登录后台的解决办法

1//只允许用户名和密码用0-9,a-z,A-Z,,_,.,-这些字符2$this->userName preg_replace("/[^0-9a-zA-Z_!\.-]/", , $username);3$this->userPwd preg_replace("/[^0-9a-zA-Z_!\.-]/", , $userpwd);4$pwd substr(md5($this->userPwd), 5, 20);56$d…

怎样对拍、如何对拍、对拍模板

我写了一个对拍模板&#xff0c;套上直接可以用&#xff0c;还有使用说明在里面&#xff0c;这里附上github网站。 对拍全套模板 转载于:https://www.cnblogs.com/yichuan-sun/p/9624162.html

二叉树线索化示意图_103-线索化二叉树思路图解

2.网上数据结构和算法的课程不少&#xff0c;但存在两个问题&#xff1a;1)授课方式单一&#xff0c;大多是照着代码念一遍&#xff0c;数据结构和算法本身就比较难理解&#xff0c;对基础好的学员来说&#xff0c;还好一点&#xff0c;对基础不好的学生来说&#xff0c;基本上…

linux环境下搭建osm_web服务器一(Postgresql配置及osm2pgsql原始数据导入):

Postgresql配置及osm2pgsql原始数据导入 2012年&#xff0c;Ubuntu 12.04LTS发布&#xff0c;又一个长效支持版&#xff0c;我们又该更新OpenStreetMap服务器了&#xff0c;这次&#xff0c;将详细在博客中记录配置过程。关于前面对OpenStreetMap的介绍&#xff0c;参考我的博文…

Java开发买低压本还是标压本_标压和低压,笔记本怎么选才最香?

华为最近发布了新款 MateBook 13/14 2020 锐龙版笔记本电脑&#xff0c;与之前的产品相比&#xff0c;它们都采用了 AMD 锐龙标压处理器。在体验这两款产品的同时&#xff0c;我一直在思考两个问题&#xff1a;它们与低压处理器相比强在哪里&#xff0c;以及是否值得购买。按照…

php mysql 备注_php,mysql备注信息1

/*---------------------------------------------------------------------------------------如何彻底地删除表?如果你不需要一个表了,你可以使用DROP.语法如下:DROP TABLE tablename例如:DROP TABLE employee_dataQuery OK,0 rows affected(0.01 sec);--------------------…

JSP和Servlet学习笔记1 - 访问配置

1. 访问 WebContent 目录下的 JSP 文件 在 WebContent 目录下的文件可以直接在浏览器中访问。新建一个 test.jsp 文件 <% page language"java" contentType"text/html; charsetISO-8859-1"pageEncoding"ISO-8859-1"%> <!DOCTYPE htm…

unity人物旋转移动代码_Unity3D研究院之脚本实现模型的平移与旋转(六)

123 说&#xff1a;雨松大大&#xff0c;有个问题想请教一下&#xff0c;我用UNET构建了个小场景&#xff0c;在电脑上可以客户端可以连接到服务器&#xff0c;Windows和Linux都可以&#xff0c;发布到安卓缺连不了&#xff0c;这是问什么呢说&#xff1a;求教一下&#xff0c;…

博客园的第一篇博文

以后所有技术相关的文章都记录在博客园啦&#xff0c;加油&#xff01;转载于:https://www.cnblogs.com/dabenniu/p/6337549.html

java后台分页插件怎么写_Java分页技术(从后台传json到前台解析显示)

0 这是一篇我在初学习过程中&#xff0c;遇到的动态数据分页显示的问题&#xff0c;前台采用Ajax传给后台&#xff0c;后台在访问数据库取出分页数据再转换为json格式传递给前台&#xff0c;前台再解析显示到表格中。在此写出我在做的过程中遇到的问题&#xff0c;可以让其他人…

c 应用程序mysql_MySQL C 语言应用程序接口开发教程

从数据库中取回数据在这个实例中我们从表中取回数据。步骤&#xff1a;(1)创建连接(2)执行查询(3)获取结果集(4)提取所有可用的记录(5)释放结果集实例程序打印 writers 表中所有的记录(姓名)。#include #include int main(int argc, char * argv[]){MYSQL * conn;MYSQL_RES * r…

GreenPlum学习笔记:基础知识

一、介绍 GreenPlum分布式数据仓库&#xff0c;大规模并行计算技术。 无共享/MPP核心架构Greenplum数据库软件将数据平均分布到系统的所有节点服务器上&#xff0c;所以节点存储每张表或表分区的部分行&#xff0c;所有数据加载和查询都是自动在各个节点服务器上并行运行&…

java 套接字关联的通道_Java 通道教程 – NIO 2.0

# Java 通道教程 – NIO 2.0> 原文&#xff1a; [https://howtodoinjava.com/java7/nio/java-nio-2-0-channels/](https://howtodoinjava.com/java7/nio/java-nio-2-0-channels/)通道是继[**缓冲区**](//howtodoinjava.com/java-7/nio/java-nio-2-0-working-with-buffers/ &…

虚拟机ubuntu14.04系统设置静态ip

ubuntu14.04 设置静态ip vim /etc/network/interfaces 原来只有 auto lo iface lo inet loopback 修改成如下&#xff1a; auto lo iface lo inet loopbackauto eth0 iface eth0 inet static #静态ip address 192.168.1.6 #要设置的ip gateway 192.168.1.1 #这…