做外贸网站推广什么比较好/seo优化方向

做外贸网站推广什么比较好,seo优化方向,做网站都可以用什么框架,云南网站建设优化一、printf 1.基本用法 •printf 的作⽤是将参数⽂本输出到屏幕 •printf print f ,printf 代表输出打印,f代表 format (格式化),format表⽰可以定制输出⽂本的格式,所以详细来说printf是将数据按照指定格式打印 …

一、printf

1.基本用法

printf 的作⽤是将参数⽂本输出到屏幕
printf = print + fprintf 代表输出打印,f代表 format (格式化),format表⽰可以定制输出⽂本的格式,所以详细来说printf将数据按照指定格式打印

printf 是在标准库的头⽂件 stdio.h 定义的。使⽤这个函数之前,必须在源码⽂件头部引⼊这个头⽂件,否者编译器会报错
在这里插入图片描述
•加上去就不会了在这里插入图片描述

•屏幕上打印 I LOVE C
在这里插入图片描述
printf不会在⾏尾⾃动添加换⾏符,运⾏结束后,光标就停留在输出结束的地⽅,不会⾃动换⾏
•如果想要换行打印,可以在输出⽂本的结尾,添加⼀个换⾏符 \n

•没换行打印在这里插入图片描述

•换行打印
在这里插入图片描述

•还可以在数据中换行(想在哪里换就哪里换)
在这里插入图片描述

2.占位符

printf可以在输出⽂本中指定占位符, “占位符”指的是这个位置可以⽤其他值代⼊

•比如我们打印 I have 5 pears在这里插入图片描述
•上⾯⽰例中,I have %d pears是输出⽂本,⾥⾯的 %d 就是占位符,表⽰这个位置要⽤其他值来替换
•占位符的第⼀个字符⼀律为百分号% ,第⼆个字符表⽰占位符的类型%d 表⽰这⾥代⼊的值必须是⼀个整数
printf 的第⼆个参数就是替换占位符的值,上⾯的例⼦是整数 5 替换 %d 。执⾏后的输出结果就是 I have 5 pears

•常⽤的占位符除了%d ,还有 %s 表⽰代⼊的是字符串(字符串要用双引号括起来)
在这里插入图片描述
•上⾯⽰例中,%s表⽰代⼊的是⼀个字符串,所以printf第⼆个参数就必须是字符串,这个例⼦是 five 。执⾏后的输出就是 I have five pears

•输出⽂本⾥⾯可以使⽤多个占位符
在这里插入图片描述
•上⾯⽰例中,输出⽂本%s have %d pears 有两个占位符,第⼀个是字符串占位符%s,第⼆个是整数占位符 %d,分别对应printf的第二个参数mom和第三个参数5%s have %d pears是第一个参数),执⾏后的输出就是mom have 5 pears

printf参数与占位符是⼀⼀对应关系,如果有 n 个占位符, printf 的参数就应该有 n +1 个(输出文本算一个参数)。如果参数个数少于对应的占位符printf 可能会输出内存中的任意值
在这里插入图片描述

3.大部分 占位符 列举

%a:⼗六进制浮点数,字⺟输出为⼩写
%A:⼗六进制浮点数,字⺟输出为⼤写
%c字符 //char 类型
%d⼗进制整数 // int 类型
%e:使⽤科学计数法的浮点数,指数部分的 e 为⼩写
%E:使⽤科学计数法的浮点数,指数部分的 E 为⼤写
%i:整数,基本等同于 %d
%f⼩数(包含 float 类型和 double 类型)// float类型 %f // double 类型%lf
%g:6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e
为⼩写
%G:等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写
%hd:⼗进制 short int 类型
%ho:⼋进制 short int 类型
%hx:⼗六进制 short int 类型
%hu:unsigned short int 类型
%ld:⼗进制 long int 类型
%lo:⼋进制 long int 类型
%lx:⼗六进制 long int 类型
%lu:unsigned long int 类型
%lld:⼗进制 long long int 类型
%llo:⼋进制 long long int 类型
%llx:⼗六进制 long long int 类型
%llu:unsigned long long int 类型
%Le:科学计数法表⽰的 long double 类型浮点数
%Lf:long double 类型浮点数
%n:已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中
%o:⼋进制整数
%p指针(⽤来打印地址)
%s字符串
%u:⽆符号整数(unsigned int)
%x⼗六进制整数
%zdsize_t 类型
%%:输出⼀个百分号

在使用这些占位符时,一定要互相匹配
在这里插入图片描述

4.输出格式

4.1限定宽度

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/93a5342972054389b011c25f1d832e18.png在这里插入图片描述

•上⾯两个⽰例中, %5d 表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格当打印的超过五位,就会正常打印在这里插入图片描述

•输出的值默认是右对⻬,即输出内容前⾯会有空格
•如果希望改成左对⻬,在输出内容后⾯添加空格,可以在占位符的 % 的后⾯插⼊⼀个-在这里插入图片描述
•如果是右对齐,我们还可以用 0 代替空格 来填充
•左对齐无法用 0 填充
•填其他数字会编译器会默认为是 占位符的宽度 (比如下列第三条 printf 展示的)在这里插入图片描述
•对于⼩数,这个限定符会限制所有数字的最⼩显⽰宽度
•上⾯⽰例中, %12f 表⽰输出的浮点数最少要占据12位。由于%f的默认显⽰精度是⼩数点后6位,所以 123.4 输出结果的头部会添加2个空格
在这里插入图片描述

•同理我们也可以用0来代替空格
在这里插入图片描述

4.2如何总是显示正负号

printf正数不显⽰ + 号(即使在打印的正数前加 +也一样),负数显⽰- 号。如果想让正数也输出 + 号,可以在占位符的 % 后⾯加⼀个 +
%+d可以让输出数值带有正负号
在这里插入图片描述

4.3限定小数位数

•如果想要限定小数位可以使用%.nf(n代表限定的位数)
•下面的例子是保留小数点后三位,%.3f
在这里插入图片描述
•编译器会 四舍五入 在这里插入图片描述
•当小数位数过多时,编译器就可能无法准确表示
在这里插入图片描述
限定小数位数限定宽度占位符结合使⽤
在这里插入图片描述•上⾯⽰例中, %*.*f 的两个星号通过 printf 的两个参数 103 传⼊,可以使用变量配合%*.*f来改变 宽度和小数位数了 ,更加灵活
在这里插入图片描述

4.4输出部分字符串

%s 占位符⽤来输出字符串,默认是全部输出
%.ns指定输出的⻓度,其中 n 代表⼀个数字,表⽰所要输出的⻓度
限定小数位数限定宽度占位符在字符串也可以结合使用,同样也可以使用%*.*来代替参数
在这里插入图片描述

5.printf的返回值

printf函数的返回值是成功输出的字符数
在这里插入图片描述
•上面的例子,第一个printf先输出12,第一个printf成功输出两个字符,所以返回值是2,那么r=2,第二个printf输出r的值

二、scanf

1.在VS编译器使用scanf报错怎么办

看这一篇博文https://editor.csdn.net/md/?articleId=144182567

2.基本用法

scanf 函数⽤于读取⽤⼾输⼊的数值
⽤⼾输⼊数据、按下回⻋键后scanf就会处理⽤⼾的输⼊,将其存⼊变量
•需要头⽂件stdio.h
scanf 的语法跟 printf 类似
•基本形式

1 int i = 0;
2 scanf("%d",&i);
// %d表示要输入的数据类型, &表示取地址操作符,i是变量

在这里插入图片描述
•上⾯⽰例中, scanf的第⼀个参数 %d ,表⽰⽤⼾输⼊的应该是⼀个整数%d 是⼀个占位符, % 是占位符的标志,d 表⽰整数。第⼆个参数 &i 表⽰,将⽤⼾输⼊的整数存⼊变量i
•变量前⾯必须加上 & 运算符(指针变量除外),因为 scanf传递的不是值⽽是地址,将变量i 的地址指向⽤⼾输⼊的值。
如果这⾥的变量是指针变量(⽐如字符串变量),那就不⽤加 & 运算符。

•scanf支持一次输入多个变量,一个变量输入完成需要空格隔开,才能输入下一个值
字符串⾥⾯有多少个占位符,就有多少个变量

1 int a,b,c,d;
2 scanf("%d%d%d%d",&a,&b,&c,&d);

在这里插入图片描述

scanf处理数值占位符时,会⾃动过滤空⽩字符,包括空格、制表符(Tab键)、换⾏符(\n在这里插入图片描述

•⽤⼾输⼊的数据之间,有⼀个或多个空格不影响scanf解读数据在这里插入图片描述

•使⽤回⻋键,将输⼊分成⼏⾏,也不影响解读
scanf处理⽤⼾输⼊的原理是,⽤⼾的输⼊先放⼊缓存,等到按下回⻋键后,按照占位符对缓存进⾏解读
•每次按下回⻋键以后,scanf 就会开始解读,如果第⼀⾏匹配第⼀个占位符,那么下次按下回⻋键时,就会从第⼆个占位符开始解读
在这里插入图片描述
•解读⽤⼾输⼊时,会从上⼀次解读遗留的第⼀个字符开始,直到读完缓存,或者遇到第⼀个不符合条件的字符为⽌在这里插入图片描述
•上⾯⽰例中,scanf读取⽤⼾输⼊时,%d 占位符读取到 123 停下来,因为后⾯的 . 不属于整数的有效字符,这就是说,占位符 %d 会读到 123 。第⼆次调⽤ scanf 时,就会从上⼀次停⽌解读的地⽅,继续往下读取。这⼀次读取的⾸字符是. ,由于对应的占位符是 %f ,会读取到 .456

3.scanf的返回值

scanf的返回值是⼀个整数,表⽰成功读取的变量个数
•下面的例子中,scanf成功读取了a b c的值,成功读取的变量个数有3个,所以r=3
在这里插入图片描述

如果没有读取任何项,或者匹配失败,则返回 0
•下面的例子,变量a是整型变量,而输入的a是字符scanf匹配失败,所以a=0,变量a匹配失败后,scanf不会再往下匹配变量b和变量c,所以b=0c=0,因为没有成功读取的变量个数,所以所以scanf的返回值r=0
在这里插入图片描述

scanf从匹配失败的变量开始,不会再往后匹配未匹配的变量,后面的变量的值一律为 0
•下面的例子中,变量b是整型变量,而输入的#是字符scanf匹配失败,变量b匹配失败后,scanf不会再往下匹配变量c,所以c=0只成功读取到变量a,所以scanf的返回值r=1
在这里插入图片描述

•如果在成功读取任何数据之前,发⽣了读取错误或者遇到读取到⽂件结尾,则返回常量 EOF (-1)
EOF --> end of file ⽂件结束标志
•如果想要提前结束,按 ctrl+z
•在VS编译器中,需要按3次 ctrl+z 才会结束(每按完一个都需要按一次回车键
•下面例子中,scanf成功读取到两个变量,scanf的返回值r=2
在这里插入图片描述

•下面例子中,scanf没有读取到任何变量,scanf的返回值是EOF(-1) 所以r=-1
在这里插入图片描述

4.占位符

scanf的占位符与printf的基本上一致(没有完全列出):

%c字符 //char 类型
%d⼗进制整数 // int 类型
%f⼩数(包含 float 类型和 double 类型)// float类型 %f // double 类型%lf
%hd:⼗进制 short int 类型
%ho:⼋进制 short int 类型
%hx:⼗六进制 short int 类型
%hu:unsigned short int 类型
%ld:⼗进制 long int 类型
%lo:⼋进制 long int 类型
%lx:⼗六进制 long int 类型
%lu:unsigned long int 类型
%lld:⼗进制 long long int 类型
%llo:⼋进制 long long int 类型
%llx:⼗六进制 long long int 类型
%llu:unsigned long long int 类型
%n:已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中
%o:⼋进制整数
%s字符串
%u:⽆符号整数(unsigned int)
%x⼗六进制整数
%[]:在⽅括号中指定⼀组匹配的字符(⽐如 %[0-9]–>ASCLL码值 ),遇到不在集合之中的字符,匹配将会停⽌

4.1特殊%c

•以上占位符除了%c以外,都会忽略起首的空格
•以%d为例
在这里插入图片描述

%c不忽略空⽩字符,总是返回当前第⼀个字符,⽆论该字符是否为空格在这里插入图片描述
•如果要强制跳过字符前的空⽩字符,可以在%c前加上⼀个空格,表
⽰跳过零个或多个空⽩字符,scanf(" %c",%a);
在这里插入图片描述

4.2特殊%s 和 限定scanf读取个数

%s从当前第⼀个⾮空⽩字符开始读起,直到遇到空⽩字符(即空格 、换⾏符\n、制表符Tab键等)为⽌
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b7719424bc714933ab7f2736ec81e036.png
•上面例子中,scanf先跳过qwer之前的空格,遇到第一个⾮空⽩字符q开始读起,scanf读到空格后停下,所以输出的是qwer
scanf不适合读取可能包含空格的字符串

•如果想要跳过空白字符打印输入的所有字符,可以这样写
scanf("[^\n]s",arr);,表示遇到换行符\n才会停止读取,输入完成后按回车键换行(表示换行),scanf读取停止
在这里插入图片描述

scanf将字符串读⼊字符数组时,不会检测字符串是否超过了数组⻓度。所以,储存字符串时,很可能会超过数组的边界,导致预想不到的结果。为了防⽌这种情况,使⽤ %s 占位符时,应该指定读⼊字符串的最⻓⻓度,即写成 %ns,其中的n 是⼀个整数,表⽰读取字符串的最⼤⻓度,后⾯的字符将被丢弃在这里插入图片描述
•限定scanf读取个数不只是在%s可以用,在其他占位符也可以这样使用
在这里插入图片描述

5.scanf输入格式 与 赋值忽略符

5.1输入格式

•先看一个例子
在这里插入图片描述
•代码scanf("%d-%d-%d", &a, &b, &c);占位符是"%d-%d-%d",指定了输入的格式,输入的数据需要符号-隔开,而我们输入的12 34 32,数字之间是用空格隔开,输入的格式与指定的格式不匹配,导致无法正确读取所有的数值

•当我们输入的是12-34-32scanf便可以正常读取
在这里插入图片描述
•如果指定了scanf的输入的格式,在输入数据时,应该遵守设定的输入格式,以防止出现错误

5.2赋值忽略符

scanf提供了⼀个赋值忽略符* 只要把 * 加在任何占位符的百分号后⾯,该占位符就不会返回值解析后将被丢弃

%*c忽略字符
在这里插入图片描述
•上⾯⽰例中, %*c 就是在占位符的百分号后⾯,加⼊了赋值忽略符 * ,表⽰这个占位符没有对应的变量,解读后不必返回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/71429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js之原型及原型链

如果js没有构造函数 首先不考虑构造函数这个鬼东西&#xff0c;当他不存在。 这个时候&#xff0c;创建对象的方式就是 <script type"text/javascript">var dog {name: hachi,age: 3}</script> 然后在浏览器上观察该对象&#xff0c;可以看到该对象包…

怎么写C#命令行参数程序,及控制台带参数案例(程序完整源码)下载

C#命令行参数解析控制台带参数编写案例&#xff08;程序完整源码&#xff09;下载链接 https://download.csdn.net/download/luckyext/90434790 在CMD命令窗口&#xff0c;输入ping 、ipconfig等这样的命令&#xff0c;大家应该都知道&#xff0c;但很多同学可能不知道怎么写…

JAVA安全—手搓内存马

前言 最近在学这个内存马&#xff0c;就做一个记录&#xff0c;说实话这个内存马还是有点难度的。 什么是内存马 首先什么是内存马呢&#xff0c;顾名思义就是把木马打进内存中。传统的webshell一旦把文件删除就断开连接了&#xff0c;而Java内存马则不同&#xff0c;它将恶…

算法 并查集

目录 前言 一 并查集的思路 二 并查集的代码分析 三 实操我们的代码 四 并查集的代码优化 总结 前言 并查集主要是用来求解集合问题的&#xff0c;用来查找集合还有就是合并集合&#xff0c;可以把这个运用到最小生成树里面 一 并查集的思路 1 并查集的相关的操作…

vulnhub靶场之【digitalworld.local系列】的development靶机

前言 靶机&#xff1a;digitalworld.local-devt-improved&#xff0c;IP地址为192.168.10.10 攻击&#xff1a;kali&#xff0c;IP地址为192.168.10.6 kali采用VMware虚拟机&#xff0c;靶机选择使用VMware打开文件&#xff0c;都选择桥接网络 这里官方给的有两种方式&…

Stiring-PDF:开源免费的PDF文件处理软件

Stiring-PDF是一款开源免费且比较好用的PDF文件处理工具。 Stiring-PDF官网网址为&#xff1a;https://www.stiringpdf.com/。Stiring-PDF是一款专业的PDF文件处理工具&#xff0c;支持Windows和macOS操作系统&#xff1b;提供丰富的PDF编辑和转换功能&#xff0c;适用于日常工…

SpringCloud系列教程(十二):网关配置动态路由

除了token以外&#xff0c;还有一个很实用的功能就是把网关的路由配置放到nacos上&#xff0c;并且修改路由配置的时候&#xff0c;网关服务可以动态的更新&#xff0c;这样我们在调整网络配置的时候&#xff0c;就不用重启服务了。所以我们需要用到两个重要的类&#xff1a;Na…

ES6 特性全面解析与应用实践

1、let let 关键字用来声明变量&#xff0c;使用let 声明的变量有几个特点&#xff1a; 1) 不允许重复声明 2) 块儿级作用域 3) 不存在变量提升 4) 不影响作用域链 5) 暂时性死区 6&#xff09;不与顶级对象挂钩 在代码块内&#xff0c;使用let命令声明变量之前&#x…

如何使用 Ollama 的 API 来生成聊天

如何使用 Ollama 的 API 来生成聊天 简介 生成聊天 生成聊天的示例 加载模型 卸载模型 简介 Ollama 提供了一个 RESTful API&#xff0c;允许开发者通过 HTTP 请求与 Ollama 服务进行交互。这个 API 覆盖了所有 Ollama 的核心功能&#xff0c;包括模型管理、运行和监控。本…

学到什么记什么(25.3.3)

Upload-labs 今日重新做了一下文件上传漏洞&#xff0c;这里第一题之前采用直接抓包改后缀名.jpg为.php&#xff0c;再写入一句话<?php phpinfo();?>然后放行&#xff0c;得到图片地址&#xff08;可复制&#xff09;&#xff0c;本来直接访问图片地址即可得到敏感信息…

【三维生成】StarGen:基于视频扩散模型的可扩展的时空自回归场景生成

标题&#xff1a;《StarGen: A Spatiotemporal Autoregression Framework with Video Diffusion Model for Scalable and Controllable Scene Generation》 项目&#xff1a;https://zju3dv.github.io/StarGen 来源&#xff1a;商汤科技、浙大CAD、Tetras.AI 文章目录 摘要一、…

【一个月备战蓝桥算法】递归与递推

字典序 在刷题和计算机科学领域&#xff0c;字典序&#xff08;Lexicographical order&#xff09;也称为词典序、字典顺序、字母序&#xff0c;是一种对序列元素进行排序的方式&#xff0c;它模仿了字典中单词的排序规则。下面从不同的数据类型来详细解释字典序&#xff1a; …

【Linux】【网络】UDP打洞-->不同子网下的客户端和服务器通信(成功版)

【Linux】【网络】UDP打洞–&#xff1e;不同子网下的客户端和服务器通信&#xff08;成功版&#xff09; 根据上个文章的分析 问题可能出现在代码逻辑上面 我这里重新查找资料怀疑&#xff1a; 1 NAT映射可能需要多次数据包的发送才能建立。 2 NAT映射保存时间太短&#xff…

C++ Primer 动态数组

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

【Qt】ffmpeg照片提取、视频播放▲

目录 一、图像的成像原理&#xff1a; RGB成像原理&#xff1a; YUV成像原理&#xff1a; 二、多线程 三、ffmpeg解码&#xff08;照片提取&#xff09; 1.准备工作 &#xff08;1&#xff09;在工程文件夹里面新建三个文件夹 &#xff08;2&#xff09;在main函数中加…

【QGIS二次开发】地图显示与交互-01

1. 系统界面设计 设计的系统界面如下&#xff0c;很好还原了QGIS、ArcGIS等软件的系统界面&#xff0c;充分利用了QT中顶部工具栏、菜单栏、底部状态栏&#xff0c;实现了图层管理器、鹰眼图、工具箱三个工具面板。 菜单栏、工具栏、工具箱集成了系统中实现的全部功能&#x…

Skynet入门(一)

概念 skynet 是一个为网络游戏服务器设计的轻量框架。但它本身并没有任何为网络游戏业务而特别设计的部分&#xff0c;所以尽可以把它用于其它领域。 设计初衷 如何充分利用它们并行运作数千个相互独立的业务。 模块设计建议 在 skynet 中&#xff0c;用服务 (service) 这…

threejs:用着色器给模型添加光带扫描效果

第一步&#xff1a;给模型添加光带 首先创建一个立方体&#xff0c;不进行任何缩放平移操作&#xff0c;也不要set position。 基础代码如下&#xff1a; 在顶点着色器代码里varying vec3 vPosition;vPosition position;获得threejs自动计算的顶点坐标插值&#xff08;也就…

Spring Boot如何利用Twilio Verify 发送验证码短信?

Twilio提供了一个名为 Twilio Verify 的服务&#xff0c;专门用于处理验证码的发送和验证。这是一个更为简化和安全的解决方案&#xff0c;适合需要用户身份验证的应用。 使用Twilio Verify服务的步骤 以下是如何在Spring Boot中集成Twilio Verify服务的步骤&#xff1a; 1.…

【Linux操作系统】VM17虚拟机安装Ubuntu22.04,图文详细记录

1.双击桌面的 VMware Workstation17 Player&#xff0c;点击“创建新虚拟机”&#xff0c;如下图所示。 2.选择“稍后安装操作系统”&#xff0c;点击“下一步”。如下图所示。 3.客户机操作系统选择“Linux”&#xff0c;版本选择“ Ubuntu 64位”&#xff0c;然后点击“下一…