嵌入式学习——c语言数据的输入输出

2023-10-27

一、输入输出概念

在c语言的程序中,几乎每一个程序都是包含输出输入语句的,如果没有输入输出语句,那么这个程序是没有意义的。
##1.1输入输出是以计算机为主体而言的
常见的输出设备:显示器,打印机等
常见的输入设备:键盘,光盘,扫描仪等。

输出
输入
计算机
显示器
键盘

1.2C语言本身不提供输入输出语句

输入输出的操作都是由c标准函数库中的函数来实现的,比如printf和scanf函数,printf和scanf不是c语言中的关键字,是库函数的名字。
C提供的标准函数以库的形式在C的编译系统中提供,它们不是C语言文本中的组成部分,不把输入输出作为C语句的目的是使C语言编译系统简单精炼,因为将语句翻译成二进制的指令是在编译阶段完成的,没有输出输入语句,就可以避免在编译阶段处理与硬件有关的问题,可以使编译系统简化,而且通用性强,可移植性好,在各种型号的计算机和编译环境下都可以适用,便于在各个计算机上实现。

1.3#include头文件放在程序中

#include<stdio.h>
如果调用标准的输入输出函数,就必须在程序开头用#include指令,把stdio头文件包含到程序中。

stdio.h是头文件,文件名的后缀是".h",在头文件放了调用标准输入输出函数的信息,包括与标准I/O库有关的变量定义和宏定义,以及对函数的声明。在对函数进行编译预处理的时候,系统就会把该在头文件中存放的内容调出来,取代本行的#inlcude指令。
值得说的是:

#include <stdio.h>
#include “stdio.h”

区别:
1.#include <stdio.h>是标准的方式。编译系统从存放c编译体统的子目录中去找所包含的头文件(stdio.h)
如果是要使用系统的库函数,因而要包含系统所提供相应的头文件,这时以标准方式为宜。
2.#.include "stdio.h"是用户自己写的头文件,编译系统会先在用户存放源程序的子目录中寻找要包含的文件,若找不到,再按标准方式查找。
如果用户想包含的头文件不是系统提供相应的头文件,而是用户自己编写的文件,这时应用“”形式,否则找不到自己的所需要的文件。
也可以写文件所在的目录
#include “C: \ temp \ file.h”

二、printf输出数据

printf函数(格式输出函数)用来向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。
##2.1一般格式

printf(格式控制,输出列表)
1.格式控制用“”括起来,且包含格式声明。如:%d,%f等
2.输出列表可以是常量,变量,或者表达式

例如:

  1. printf("%d",c);
  2. printf(“a = %d b = %d\n”,a,b);//\n表示光标移到下一行(换行)

2.2格式字符

2.2.1d格式,输出十进制整数。
长整型数据%ld
双长整数据%lld

printf("%d\n%d\n",12,-123);

输出:

12
123

域宽,在格式声明中指定输出数据的所占的列数

printf("%5d\n%5d\n",12,-123);
//指定输出数据占5列,输出的数据显示在此5列区域的右侧

输出:

   12     //12前面有三个空格
 -123     //-123前面有一个空格

2.2.2 C格式符,用来输出一个字符
例如:

char ch = 'a';
printf("%c\n",ch);

输出结果

a

同样也是可以指定域宽的。
例如:

printf("%5c",ch);

运行结果:

    a   //前面有4个空格

一个整数在1~127范围中,也可以用%c按字符形式输出,在输出之前,系统会将该整数作为ASCII码转化成相应的字符。
例如:

short B = 97;
printf("%c",B);

输出结果:

a

如果整数比较大,则把它的最后一个字节的信息以字符形式输出

int a = 377;
printf("%c",a);

在这里插入图片描述
最后一个字节的信息是01111001十进制是121,对应的ASCII码是’y’

输出结果

y

2.2.3----s格式字符,用来输出一个字符串

printf("%s","WELCOME");

输出结果

WELCOME

2.2.4—f格式符
用来输出单精度,双精度,长双精度的实数,以小数形式输出。

  1. 基本的用%f
    不用指定输出数据的长度,系统决定:
    实数中整数部分全部输出,小数部分输出6位
    例如:
#include <stdio.h>
int main()
{
	double a = 1.0;//双精度类型
	printf("%f\n",a/3);//a/3也是双精度类型
	return 0;
}

运行输出:

0.333333
  1. 指定数据宽度和小数位数用%m.nf
    可以使输出的数据上下行必按小数点对齐,使输出数据整齐美观。
#include <stdio.h>
int main()
{
	double a = 1.0;//双精度类型
	printf("%20.15f\n",a/3);//a/3也是双精度类型
	//指定输出的数据占20列,小数占15列
	return 0;
}

运行结果

   0.333333333333333 
   //0的前面有3个空格

注意:
float型数据只能保证6位有效数字,
double型只能保证15位有效数字。

即使指定小数位数为50位,也不能保证输出的50位都是有效的数字。

  1. 输出数据向左对齐%-m.nf
    当数据长度不超过m时,数据向左靠,右端补空格。
    例如:
#include <stdio.h>
int main()
{
	float a;
	a = 10000/3.0;
	printf("%-25.15f\n",a);
	printf("%25.15f\n",a);
	return 0;
}

运行结果:
第一次输出:
a向左端靠齐,右端空5列
第二次输出:
a向右端靠,左端空5列
在这里插入图片描述
2.2.5—e格式符
%e指定用指数形式输出实数。
编译器默认小数为6位,指数部分为5位(e占1列,符号1列,指数3列)
数值按标准化指数形式输出,小数点前必须有而且只有1位非零数字。
例如:

1.234560 e+002
	65

也可以用%m.ne或者%m.nE形式的格式声明。

printf("%13.2e",123.456);
printf("%13.2E",123.456);

输出为:

    1.23e+002//数的前面有4个空格
    1.23E+002//数的前面有4个空格

2.2.6其他格式
用的不多,必要时可以查阅。

  1. i与d相同
  2. o八进制输出
    例如:
int a = -1;
printf("%d\t%o\n",a,a);

运行结果:

-1      37777777777

-1以补码形式存放在4个字节中,2^3=8,所以每3位构成一组

在这里插入图片描述
在这里插入图片描述
3.x或X十六进制输出
常见是#x或者#X表示输出0X~~

int a = -1;
printf("%d\n",a);
printf("%o\n",a);
printf("%x\n",a);
printf("%#X\n",a);

运行结果:
在这里插入图片描述
4.u格式—无符号型的数据,以十进制整数形式输出。
5.g格式—用来输出浮点数。
printf函数中用到的格式字符

格式字符 说明
d,i 输出有符号的十进制整数(整数不输出符号)
u 输出无符号的十进制整数
o 输出无符号的八进制整数(不输出前o)
x,X 输出无符号的十六进制的整数,(不输出前导符0x),用x输出小写的a~f,用X时,以大写字母输出
c 输出单个字符
s 输出字符串
f 输出实数可以用小数形式或者指数形式输出,以及隐含的6位小数
e,E 以指数形式输出,用e时输出(如:1.2e+02)用E时(如:1.2E+02)
g,G 选用%f或%e格式输出宽度较短的一种格式,不输出无意义的0。用G时,若以指数形式输出,则指数以大写形式表示。

printf函数常用的格式附加字符

字符 说明
l 长整型整数,可加在格式符d,o,x,u前面
m(正整数) 数据最小宽度
n(正整数) 对实数表示输出n位小数;对字符串,表示截取的字符个数
- 输出的数字或者字符在域内向左靠

三、scanf输入数据

3.1scanf一般格式

格式:

scanf(格式控制,地址列表)
格式控制:与printf的含义相同,
地址列表:可以是变量的地址,也可以是字符串的首地址。是**变量地址**

例如:

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

###3.2格式声明
scanf常用的格式字符

格式字符 说明
d,i 输入有符号的十进制整数
u 输入无符号的十进制整数
o 输入无符号的八进制整数
x,X 输入无符号的十六进制的整数
c 输入单个字符
s 输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束,‘\0’作为字符串的结束标志。
f 输入实数可以用小数形式或者指数形式输入
e,E,g,G 与f作用相同
l 输入长整型数据(%ld,%lo,%lx,%lu)以及double数据(%lf或者%le)
h 输入短整型数据(%hd,%ho,%hx)
域宽 指定输入数据所占的宽度,域宽为正整数
* 本输入项在读入后不赋给相应的变量

###3.3注意的问题
使用scanf函数应该注意的地方
(1)输入的时候是变量的地址,不是变量名。

scanf(%f”,a);//错误,a是一个变量名
scanf("%f",&a);//正确

(2)输入的内容应该与格式控制的格式是保持一致的。
例如:

scanf(“a=%f,b=%f,c=%f”,&a,&b,&c);

那么输入的内容为

a=1,b=2,c=3//在按回车
如果输入时不是逗号而是空格或者其他字符就是错误的
如果输出
1 2 3//就是错误的
因为系统会把它和scanf函数中的格式字符串逐个字符对照检查,
只是在%f的位置上代以一个浮点数

(3)在使用%c输入字符的时,空格字符和转义字符都作为有效字符输入。

scanf("%c%c%c",&c1,&c2,&c3)

此时应该输入三个连续的字符,中间不能有空格

abc
'a'送给c1
'b'送给c2
'c'送给c3

如果在中间输入空格就错了

a b c

系统会把第一个字符‘a’送给c1,第二个字符是空格字符‘ ’,送给c2,第三个字符‘b’送给c3.
(4)在输入数值数据时,如果遇到回车,空格,Tab建或者非法字符,认为该数据结束。
例如:

scanf("%d%c%f",&a,&b,&c);

输入

1234a123o.26
%d对应十进制数1234所以1234表示a
%c表示输入一个字符a是一个字符,所以a送给了b
由于%c只要求输入一个字符,系统判定已经结束输入。
123送给c,后面几个字符没有读入。

四、输入输出函数

除了printf和scanf函数可以作为字符的输出和输入以外,putchar和getchar也是可以进行字符的输入输出的。

4.1putchar()

一般格式(如下)
作用:输出字符变量c的值,c可以是字符常量,整型常量,字符变量或整型变量(其值在字符的ASCII码代码范围内)输出的是一个字符

purchar(c);

例如1:

#include <stdio.h>
int main()
{
	char a = 'B',b = 'O',c = 'Y';/定义3个字符变量并初始化
	putchar(a); //向显示输出字符B
	putchar(b);//向显示器输出字符O
	putchar(c);//向显示器输出字符Y
	putchar('\n');//向显示器输出一个换行符,是输出的当前位置移到下一行的开头
	return 0;
}

运行结果:
在这里插入图片描述
字符类型也属于整数类型,因此将一个字符赋给字符变量和将数字符的ASCII码赋给字符变量的作用是一样的(整型数据范围在0~127).putchar是输出字符,会把数字转化成对应的字符。

#include <stdio.h>
int main()
{
	char a = 66,b = 79,c = 89;/定义3个字符变量并初始化
	putchar(a); //向显示输出字符B
	putchar(b);//向显示器输出字符O
	putchar(c);//向显示器输出字符Y
	putchar('\n');//向显示器输出一个换行符,是输出的当前位置移到下一行的开头
	return 0;
}

运行结果是

BOY

putchar也可以输出转义字符

putchar('\101');//输出字符A
putchar('\");//输出单撇号\'
putchar('\015');//八进制的15=十进制13,对应的ASCII是“回车”,不换行

4.2getchar()

getchar函数是只能输入一个字符。如果想输出多个字符则需要用多个getchar获取。
getchar()输入-1或者按ctr+d会结束。
例如:从键盘输入BOY的3个字符,然后输出到屏幕上。
思路:用3个getchar获取字符,然后在用putchar输出。

#include <stdio.h>
int main()
{
	char a,b ,c;	//定义3个字符变量 
	a = getchar();	//从键盘输入一个字符送给字符变量a 
	b = getchar();
	c = getchar();
	
	putchar(a);	//将变量a的值输出 
	putchar(b);
	putchar(c);
	putchar('\n');//换行 
	return 0;
}

注意:这是在连续输入BOY后按Enter健,字符才送到计算机中,然后输出BOY字符。
输出结果:
在这里插入图片描述
如果:输入B后按空格在输入O,在按空格,再输入Y,结果会是怎么样的呢?
在这里插入图片描述
我们可以发现输出的结果只输出了两个字符。
输入的B赋给了变量a,空格也是一个字符,于是空格赋给了变量b,接着把空格赋给了变量c,而Y就没有送给任何一个变量,此时putchar输出的只有B O ,然后执行换行,没有Y。
这里说明一下:
在用键盘输入信息的时候,并不是键盘敲一个字符,就立刻送到计算机中去,而是这些字符暂缓存放在缓冲区中只有按了Enter才能把这些字符一起送到计算机中,然后按先后顺序分别赋给相应的变量

注意:
使用putchar不仅可以获取显示的字符,也可以获取屏幕上无法显示的字符,如控制字符
改一下以上的程序:把getchar作为表达式的一部分

#include <stdio.h>
int main()
{	
	putchar(getchar());	//将接受到的字符输出 
	putchar(getchar());
	putchar(getchar());
	putchar('\n');//换行 
	return 0;
}

运行结果:

BOY
BOY

也可以在printf中输出杠接收的字符

printf("%c",getchar());//%c是输出字符的格式声明
#include <stdio.h>
int main()
{	
	printf("%c",getchar());//%c是输出字符的格式声明
	printf("%c",getchar());
	printf("%c",getchar());
	putchar('\n');//换行 
	return 0;
}

例如2:从键盘输入大写字母,小写输出。
思路:小写和大写的ASCII码相差32。

#include <stdio.h>
int main()
{	
	char c1,c2;
	c1=getchar();//获取大写字母,赋给变量c1 
	c2=c1+32; //小写和大写ASCII码相差32 
	putchar(c2);//输出大写 
	putchar('\n');//换行 
	return 0;
}

运行结果
在这里插入图片描述
也可以用printf输出

#include <stdio.h>
int main()
{	
	char c1,c2;
	c1=getchar();//获取大写字母,赋给变量c1 
	c2=c1+32; //小写和大写ASCII码相差32 
	printf("大写字符:%c\n",c1); 
	printf("小写字符:%c\n",c2); 
	return 0;
}

运行结果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式学习——c语言数据的输入输出 的相关文章

  • PIL 的 Image.show() 带来*两个*不同的查看器

    在 python shell 中处理图像时 我使用 image show 其中 image 是 Image 的实例 很久以前什么也没发生 但在定义了一个名为 xv 的 Mirage 符号链接后 我很高兴 最近几天 show 将显示 Imag
  • Apache 端口转发 80 到 8080 并访问 Apache (80) 中托管的应用程序,即 phpMyadmin 和 Tomcat (8080)

    我想访问托管在 tomcat 服务器 8080 中的应用程序 myapp 当前可以通过以下方式访问http example com 8080 myapp http example com 8080 myapp in http example
  • 如何在Linux上用C/C++编写Web服务器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在考虑在 Linux 平台上开发一个小型 阅读 初级 Web 服务器 但我不知道从哪里开始 我希望它能够做的是 监听特定端口 接受
  • 如何将一个文本文件拆分为多个 *.txt 文件?

    我有一个文本文件file txt 12 MB 包含 something1 something2 something3 something4 有没有办法分开file txt分成 12 个 txt 文件 比方说file2 txt file3 t
  • 对于任何真实数据集,数据压缩比的最小可能值是多少

    我在写信ZLIB类似于嵌入式硬件压缩器的 API 它使用 deflate 算法来压缩给定的输入流 在进一步讨论之前 我想解释一下数据压缩率 数据压缩率定义为未压缩大小与压缩大小之间的比率 压缩比通常大于一 这意味着压缩数据通常比未压缩数据小
  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • Docker忽略limits.conf(试图解决“打开文件太多”错误)

    我正在运行一个 Web 服务器 该服务器正在处理数千个并发 Web 套接字连接 为了实现这一点 在 Debian linux 我的基本镜像是 google debian wheezy 在 GCE 上运行 上 打开文件的默认数量设置为 100
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 如何在 Linux 上通过 FTP 递归下载文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h

随机推荐

  • 一文读懂HTML和CSS的关系

    Web开发是一个很依赖经验的领域 然而这对初学者很不友好 知识一旦脱离了应用场景就会变得晦涩 空洞 且知识本身也满足 二八定律 抓大放小 是提高学习效率的关键 下文向大家介绍了HTML和CSS之间的关系 内容选自 HTML 5与CSS 3核
  • Mybatis-Plus时间范围查询

    方式一 通过apply方法 来实现时间范围查询 该方法可用于数据库函数 动态入参的params对应前面applySql内部的 index 部分 这样是不会有sql注入风险的 反之会有 apply String applySql Object
  • Jenkins 持续集成「编译打包、代码检查、单元测试、环境部署、软件测试​」

    Jenkins 就是常说的 CI 平台 持续集成 持续集成 CI 是一种实践 可以让团队在持续的基础上收到反馈并进行改进 不必等到开发周期后期才寻找和修复缺陷 改进肯定是自己改进 反馈是谁提供呢 最先应用在开发团队中 也就是 打包 大型项目
  • crmeb PRO v1.2用户隐私协议问题

    注意 行数仅供参考 为了快速找到修改的地方 1 文件地址 app controller admin v1 setting SystemGroupData php行数 308 获取用户协议内容 return mixed public func
  • React通过docx-preview预览Word文档

    前言 在基于React的Web应用中 我们经常遇到需要预览和展示Word文档的需求 而docx preview是一个优秀的React组件库 可以帮助我们实现在Web页面上预览Word文档的功能 本文将介绍如何使用docx preview组件
  • React 路由使用-详细介绍

    路由初使用 抽象路由模块 src page Article index js const Article gt return div p 文章页 p div export default Article src router index j
  • selenium框架解析

    seleium框架解析 文章目录 seleium框架解析 前言 一 selenium驱动浏览器原理 二 selenium常用操作 1 四大操作 2 三大切换 3 三大等待 4 下拉框操作 5 时间控件操作 6 滚动条操作 7 文件操作 前言
  • java类的静态成员和非静态成员_Java SE之[静态成员/类成员]与[非静态成员/实例成员]【static】...

    定义 静态成员 又称类成员 使用static修饰符的方法和变量 非静态成员 又称实例成员 未使用static修饰符的方法和变量 结论 注 jdk1 8 测试源码 public class Main private int x 34 非静态变
  • linux path 多个目录,Linux下多路径Multipath的简单配置

    Linux下多路径Multipath的简单配置 1 启用Multipath 1 启动multipathd服务 service multipathd start 或者 etc init d multipathd start 2 修改multi
  • python房价预测_Python——决策树实战:california房价预测

    Python 决策树实战 california房价预测 编译环境 Anaconda Jupyter Notebook 首先 导入模块 1 importpandas as pd2 importmatplotlib pyplot as plt3
  • 手写算法-python代码实现Kmeans

    手写算法 python代码实现Kmeans 原理解析 代码实现 实例演示 sklearn对比 总结 原理解析 今天 我们来讲一下Kmeans 一种无监督聚类算法 也是最为经典的基于划分的聚类方法 它的思想是 对于给定的样本集 按照样本之间的
  • java中的 Set转List

    构造Map数据 Map
  • Mysql详解

    一 数据库的基本概念 数据库的英文单词 DataBase DB 数据库 用来存储和管理数据的仓库 数据库的特点 持久化存储数据 其实数据库就是一个文件系统 方便存储和管理数据 使用了统一的方式操作数据库 SQL 常见的数据库软件 MySQL
  • 两阶段最小二乘法_最小二乘法(Least Squares)简介

    最小二乘法简介 最小二乘法 Least Squares 是回归分析中的一种标准方法 它是用来近似超定系统 Overdetermined System 答案的一种方法 超定系统是指数学中的一种概念 一组包含未知数的方程组中 如果方程的数量大于
  • arm平台编译adb

    参考github https github com bonnyfone adb arm 本来的目的是在arm平台编译以后能够使用adb shell获取shell权限 然后就可以避开其他权限无法执行su的问题 最开始 先修改了android源
  • kodi刮削器 中文_手把手教您设置KODI播放器,3分钟打造家庭影院级媒体库,流畅播放NAS里的原盘电影!...

    创作立场声明 此文为比较基础的KODI播放器的保姆级安装和配置教程 希望可以帮助一些初入家庭影音的值友们 关于KODI KODI是一款播放器 也是一款媒体库管理软件 不仅在电视上可以安装 还可以在windows电脑上进行安装 当下载高清 高
  • Vue3记录

    Vue3快速上手 1 Vue3简介 2020年9月18日 Vue js发布3 0版本 代号 One Piece 海贼王 耗时2年多 2600 次提交 30 个RFC 600 次PR 99位贡献者 github上的tags地址 https g
  • 【1】TypeScript入门——基本认知

    一 基本认知 1 优点 TypeScript 更加可靠 它与使用 JavaScript 相比 不仅支持在任何地方直观地获取组件的接口定义 还能对属性 状态中的值是否为空进行自动检测并给出提示 容错处理 甚至还支持对 React JSX元素接
  • Java创建数组的方法

    最近学Java 一点小心得 希望和大家分享一下 第一次写文章 写的不好希望大家谅解 当然我也会尽力写好这篇文章 Java创建数组的方法大致有三种 说明 这里以int为数据类型 以arr为数组名来演示 一 声明并赋值 int arr 1 2
  • 嵌入式学习——c语言数据的输入输出

    嵌入式学习 c语言数据的输入输出 一 输入输出概念 1 2C语言本身不提供输入输出语句 1 3 include头文件放在程序中 二 printf输出数据 2 2格式字符 三 scanf输入数据 3 1scanf一般格式 四 输入输出函数 4