格式化标准输出函数printf()与格式化标准输入函数scanf()

2023-05-16

printf()函数与scanf()函数

文章目录

  • printf()函数与scanf()函数
    • 格式化标准输出函数 ——printf()
      • 相关函数:
      • 返回值
      • 参数执行顺序
      • 打印较长字符串
      • 格式控制符:
      • 输出缓冲区
      • printf()的标志
      • 转义字符
      • 类型修饰符
    • 格式化标准输入函数 ——scanf()
      • 相关函数:
      • 转换控制符
      • 特殊之处
      • 返回值
      • 可变宽度输出字段

格式化标准输出函数 ——printf()

概念:屏幕是系统的标准输出设备,从屏幕中输出数据被称为标准输出

相关函数:

printf()

格式化标准输出函数

函数原型

#include <stdio.h>
int printf(const char *format,...);//...表示可变参数,即表示可以只有format这一个参数,也可以表示后面还有其它参数。

函数说明

printf系列函数能够对这种不同类型的参数进行格式化编排和输出。format参数控制输出的格式。

例如:

printf("%d\n",100);		//默认以十进制int类型识别匹配并打印,输出一个整数
printf("%c\n",'A');     //输出字符
printf("%s\n",100);		//输出字符串
printf("%x\n",100);		//输出十六进制整数
printf("%f\n",3.14);	//输出浮点数
printf("%lf\n",3.14);	//输出double类型浮点数
printf("%p\n","abcd");	//输出地址
printf("%d,%d\n",100);	//输出两个整数
printf("%d,%s\n","abcd");//输出字符串

类似%d、%f被称为格式控制符,一个格式控制符对应一个相应格式的数据。

注意

函数中的参数数目和类型必须与format字符串里的转换控制符匹配。

在这里插入图片描述
图中输出的A对应的ASCII为65,97作为ASCII时对应的字符为a。
前两句是因为输出格式问题导致输出结果与我们想要的不一致,但这都只是字符与ASCII码之间的转换;
第三个输出的97是正确的,至于为什么会输出@字符,我现在也还没弄清楚つ﹏⊂,求解。
第四个输出为字符串地址的十进制输出,一般都是直接用%p格式输出地址。
第五个输出不懂つ﹏⊂,格式是不对的,参数是一个地址,格式为字符串,为什么会什么都不输出,因为不匹配吗?求解。
最后一条输出字符串的格式是正确的

其它用于输出的函数

  • puts()

  • fputs()

  • sprintf()


返回值

printf()的返回值是所打印的字符的数目,如果有输出错误,那么printf()会返回一个负数

这个返回值是它打印输出用途的附带功能,通常很少用到。使用返回值的一个可能原因是要检查输出错误。在向文件中输出而非向屏幕上输出的时候,这是很常见的。

在这里插入图片描述

在这里插入图片描述

从上图可以看出,包括空格、换行符都会被算入到num中。

相关题目

这是我以前做过的一道笔试题,具体题目已经找不到了,只能凭印象写了一下,不是原题,主要就是利用了printf函数的输出。记得好像没这么简单,感兴趣的朋友可以去找一下。

在这里插入图片描述

在这里插入图片描述

主要需要了解的知识点就是程序的执行顺序和printf的输出。


参数执行顺序

printf函数参数执行的问题:

  • VC6.0、VS code、VS2019 从右到左

  • linux,dev-c++ 从左到右

    (这个是我网上找的,我在自己电脑的VS code、VS 2019和Ubuntu上验证,参数执行顺序都是从右到左(つ﹏⊂),感兴趣的朋友自己验证一下。

在这里插入图片描述

从图中可以看出,是先执行第三个表达式,再到第二个、第一个表达式。

在这里插入图片描述

只是将char类型换成了int类型,不懂为什么会出现一个13,在Linux上验证也是这个答案,求解。


打印较长字符串

  • 使用多个printf()语句;

  • 使用反斜线符号(/)和回车键的组合来结束一行。这就使得屏幕上的文本另起一行,并且在字符串中不会有换行符。不过下一行代码必须从最左边开始。

  • 采用字符串连接的方法。如果一个用双引号引起来的字符串后面跟着另一个双引号引起来的字符串,且两者间只有空白字符,那么计算机将会把它们连成一个字符串。

    比如:

    printf("hello "  "world!%d",num);
    printf("hello world!%d",num);
    //这两句是一样的
    

格式控制符:

  1. 十进制整数:%d
  2. 无符号十进制整数:%u
  3. 无符号八进制整数:%o
  4. 无符号十六进制整数:%x
  5. 字符:%c
  6. 字符串:%s
  7. 单精度浮点数:%f
  8. 双精度浮点数:%lf
  9. 长双精度浮点数:%Lf
  10. 地址:%p
  11. 以指数形式表示浮点数:%e

输出缓冲区

printf()函数什么时候真正把输出传输给屏幕?

先来了解一下缓冲区

printf函数使用时会根据系统平台的不同具有缓冲区机制:

  1. 无缓存:只要输出一个字符,屏幕设备就显示一个
  2. 行缓存:遇到’\n’换行从缓冲区刷出,显示到屏幕上
  3. 全缓存:只有遇到对应的刷新操作或清缓冲区操作才显示在屏幕上,如fflush()函数。

首先,printf()语句将输出传递给缓冲区(buffer)的中介存储区域。缓冲区中的内容再不断地被传递给屏幕。

标准C规定在以下几种情况下将缓冲区内容传给屏幕:

  1. 缓冲区满的时候;

  2. 遇到换行符的时候;

  3. 需要输入的时候。

    将缓冲区内容传给屏幕或文件称为刷新缓冲区

    例如前面两个printf()语句还未填满缓冲区,但后面有一条scanf语句,就会迫使内容传送给屏幕。

测试代码

因为在自己电脑上的两个C编译软件上测试都没办法体现出这一点,只能选择在Linux上进行测试,通过gdb单步调试,得到下面的结果。

在这里插入图片描述

在这里插入图片描述

从上图可以看到,单步运行14、15行代码时,都没有输出内容,运行16行时遇到换行符,将缓冲区中的三块字符串一起输出;运行17、18行时没反应,到了19行遇到scanf函数需要输入时,将缓冲区中的内容输出来。


printf()的标志

标志意义
-数据左对齐:也就是说,会把数据打印在字段的左侧开始处;%-20s
+有符号的值若为正,则显示带加号的符号;
若为负,则带减号的符号; %+6.2f
(空格)有符号的值若为正,则显示时带前导空格(但是不显示符号);
若为负,则带减号符号。+标志会覆盖空格标志; % 6.2f
#使用转换说明的可选形式。若为%o格式,则以0开始;
若为%x和%X格式,则以0x或0X开始。
对于所有的浮点形式,#保证了即使不跟任何数字,也打印一个小数点字符。
对于%g和%G格式,它防止尾随零被删除。 %#o、%#8.0f、%+#10.3E
0对于所有的数字格式,用前导零而不是用空格填充字段宽度。
如果出现-标志或指定了精度(对于整数)则忽略该标准。 %010d、%08.3f

实例

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


转义字符

转义字符释义
?在书写连续多个问号时使用,防止他们被解析成三字母词
\’用于表示字符常量 ‘
\’’用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字,如:\130;用来表示ASCII表中任意字符
\xdddd表示2个十六进制数字, 如: \x30;用来表示ASCII表中任意字符

其中,使用八进制\ddd的方式是比较通用的,而十六进制\xdd的方法在Windows系统可能不太通用,需要的时候建议用八进制\ddd。

例如:

在这里插入图片描述

在这里插入图片描述

相关题目
在这里插入图片描述

如图中要求求出绝对地址的长度,得到的结果为14而不是18;因为这地址中存在3个转义字符,其中\t是比较容易发现的,剩下一个\32比较容易忽略,因为8已经超出了八进制的规定,所以不能列入转义字符\32或\032中。

这也是为什么在编程中输入地址时需要双斜杠的原因。


类型修饰符

修饰符意义
标志五种标志(-、+、空格、#和0),可以使用0个或多个标志
数字字段宽度的最小值。如果字段不能容纳要打印的数或字符串,系统就会使用更宽的字段。例:%4d
.数字精度。对于%e、%E和%f转换,是要将在小数点的右边打印的数字的位数
对于%g、%G转换,是有效数字的最大位数
对于%s转换,是将打印的字符的最大数目
对于整数转换,是将要打印的数字的最小位数。
h和整数转换说明符一起使用,表示一个short int或unsigned short int类型数值–%hu、%hx
hh和整数转换说明符一起使用,表示一个signed charunsigned char类型数值
j和整数转换说明符一起使用,表示一个intmax_t或uintmax_t类型数值
l和整数转换说明符一起使用,表示一个long int或unsigned long int类型数值
ll和整数转换说明符一起使用,表示一个long long int或unsigned long long int类型数值
L和浮点转换说明符一起使用,表示一个long double值
t和整数说明符一起使用,表示一个ptrdiff_t(与两个指针之间的差相对应的类型)
z和整数转换说明符一起使用,表示一个size_t值(sizeof返回的类型)

浮点型参数的转换

有用于打印浮点类型double和long double的转换说明符,但没有用于float的说明符。原因是在K&R C中float值在被用于表达式中或被用于参数之前,会被自动转换为double类型。因此无需专门的转换说明符来显示float类型。


实例

在这里插入图片描述

在这里插入图片描述


格式化标准输入函数 ——scanf()

概念:键盘是系统的标准输入设备,从键盘中输入数据被称为标准输入

缓冲区:和printf类似,scanf具有输入缓冲区的机制;缓冲区中存储的是字符而不是像内存一样存储二进制。

标准IO:stdio-标准输入 stdout-标准输出 stderr-标准出错输出

相关函数:

scanf():

函数原型

#include <stdio.h>
int scanf(const char *format,...);

函数说明

scanf系列函数的工作方式与printf系列函数相似,作用是从一个文件流里读取数据,并把数据放到以指针参数形式传递过来的地址处的变量中。它们也使用一个格式字符串来控制输入数据的转换,它所使用的许多转换控制符都与printf系列函数一样。
scanf函数,scan format的简写,作用是将读入的值保存到对应的变量中,这些变量必须是正确的,并且必须精确匹配格式字符串。否则,内存数据就可能遭到破坏,从而使程序崩溃。

scanf("%d", &a); // 从键盘输入一个整型,放入指定的内存地址 &a 中

scanf("%f", &f); // 从键盘输入一个浮点数,放入指定的内存地址 &f 中

scanf("%d%f", &a, &f); // 从键盘依次输入一个整型和一个浮点型数据,用空白符隔开

char c;

char s[10];

scanf("%c", &c); // 从键盘输入一个字符,放入指定的内存地址 &c中

scanf("%s", s ); // 从键盘输入一个单词,放入指定的数组 s 中(注意不是&s,数组名称就是数组的地址)

gets()

fgets()

fgetc()

getchar()


scanf()开始读取输入以后,会在遇到的第一个空白字符空格(blank)、制表符(tab)或换行符(newline)处停止读取。


转换控制符

转换控制符说明
%d读取一个十进制整数
%o,%x读取一个八进制或十六进制整数
%c读取一个字符,它不会跳过起始的空白字符
%s读取一个字符串,它会跳过起始的空白字符
%f、%e、%g读取一个浮点数
%[]读取一个字符集合
%%读取一个%字符
%hd读入一个短整数
%ld读入一个长整数
%lg读入一个双精度浮点数

注意

  1. 使用%s控制符来扫描字符串时要小心,它会跳过起始的空白字符,在字符串里出现的第一个空白字符处停下来,所以最好用它来读取单词而不是一般意义上的字符串。此外,如果没有使用字段宽度限定符,它能够读取的字符串的长度是没有限制的,所以接收字符串必须有足够的空间来容纳输入流中可能的最长字符串。较好的选择是使用一个字段限定符,或者结合使用fgets和sscanf从输入读入一行数据,再对它进行扫描。这样可以避免可能被恶意用户利用的缓冲区溢出。

scanf()的转换修饰符

修饰符意义
*滞后赋值
%*d
digit(s)最大字段宽度;在达到最大字段宽度或者遇到第一个空白字符时停止对输入项的读取
%10s
hh把整数读成signed char或unsigned char
ll把整数读作long long或unsigned long long
h,l或L“%hd”和“%hi”指示该值将会存储在一个short int中。

scanf()函数所用的转换说明符与prinf()所用的几乎一样。主要区别在于printf()把%f、%e、%E、%g、%G同时用于float和double,而scanf()只把它们用于float,而用于double时要加l修饰


特殊之处

除**%c以外的说明符会自动跳过输入项之前的空格**,然后会一直读取字符,直到遇到空白字符或遇到一个不符合正在读取的类型的字符。所以scanf(“%d%d”,&n,&m)与scanf(“%d %d”,&n,&m)的行为结果是相同的。

但对于%c来说,向格式字符串中添加一个空格将导致一些区别。

如果在%c之前有一个空格,那么scanf()会跳到第一个非空白字符处。

也就是说scanf("%c",&ch)读取在输入中遇到的第一个空格(可能是空白字符),而scanf(" %c",&ch)则读取遇到的第一个非空白字符。

实例
在这里插入图片描述

在这里插入图片描述

如图所示,格式字符串中%c前面没加空格时,输入空格+1;输出为空格;

格式字符串中%c前面加空格时,输入空格+1;输出为1.


返回值

scanf()函数返回成功读入的项目个数。如果没有读取任何项目(当它期待一个数字而你却键入一个非数字字符串),返回0.当它检测到“文件结尾”,返回EOF(-1).


可变宽度输出字段

printf()和scanf()的修饰符(可变宽度输出字段)

printf中,假定你不想事先指定字段宽度,而是希望由程序来指定该值,那么你可以在字段宽度部分使用*代替数字达到目的,但你必须使用一个参数来告诉函数字段宽度应该是多少。

在这里插入图片描述

上图所示,输入6,输出256占了6个字符宽度(右对齐)。

再输入3,输出3.142占了6个字符宽度(右对齐),其中显示3位小数部分。

scanf()中*提供截然不同的服务。当把它放在%和说明符字母之间时,它使函数跳过相应的输入项目。如果程序需要读取一个文件中某个特定的列(该文件的数据以统一的列排列),那么该功能很有用。

在这里插入图片描述

如图所示,输入12、23、34,输出时跳过了12、23,显示34.


这笔记中大部分题目都来自比特鹏哥的视频,B站有一套免费的C语言课程,讲得非常详细,就是时间有点长。
我目前还在学习C语言阶段,所以理解上可能还不太准确,这些笔记部分是按我自己的想法写的,可能有点变扭,望理解。
参考文章: https://blog.csdn.net/luoting2017/article/details/88941166

>>C语言的杂碎知识点
>>Markdown学习笔记
>>数据在内存中的存储
>>printf源码

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

格式化标准输出函数printf()与格式化标准输入函数scanf() 的相关文章

  • 如何使用 write 系统调用将 int 写入文件并完全按照写入方式读取它们?

    如何使用 UNIX 的 write 系统调用将 int float 或其他类型写入文件 我想这样做而不使用任何 lib 函数 例如fprintf or fwrite 我想使用文件描述符而不是FILE 再次打开后 文件必须完全按照写入的方式读
  • 混淆 .fmt 行为与嵌套列表

    The docs https docs raku org routine fmt比如说fmt 返回一个字符串 其中列表中的每个元素都已根据以下格式进行格式化 format 第一个参数 并且每个元素由 separator 第二个论点 根据该描
  • printf 命令导致段错误? [复制]

    这个问题在这里已经有答案了 当我尝试初始化一个大型的二维字符数组时 它工作得很好 但是当我添加一个简单的打印命令时 它给了我一个分段错误 关于为什么会发生这种情况有什么想法吗 include
  • JavaScript 相当于 printf/String.Format

    我正在寻找一个与 C PHP 相当的 JavaScriptprintf 或者对于 C Java 程序员来说 String Format IFormatProvider对于 NET 我的基本要求是目前数字的千位分隔符格式 但处理大量组合 包括
  • 从 .txt C 读取

    我在C语言方面遇到了一些麻烦 我有一个 txt 文件 其中包含以下形式的各行 F 65 S 4 1 139 56 3704 26 和我的程序 p fopen dados txt r if p NULL printf n nNao foi p
  • 使用 ncurses 处理转义序列? printf 是否处理转义序列?

    我的程序从网络读取一些文本数据 例如 Hello 033 1 34mworld 033 0m and bla bla bla n 当程序使用prinf输出该字符串时 world 一词是蓝色的 但是当我将 ncurses 接口与 wprint
  • scanf:内部带有宏(#define 常量)的模板

    我有一些像这样的代码 define MAXSIZE 100 int main char str MAXSIZE 1 scanf 100s str 问题是我仍然有 幻数 100 尽管定义了 MAXSIZE 有没有办法正确地将 MAXSIZE
  • 如何使用 printf 自定义自定义类型的输出?

    我已经阅读了很多内容专家 F 并正在致力于构建一个实际的应用程序 在调试时 我已经习惯了传递这样的 fsi 命令 以使 repl 窗口中的内容清晰可见 fsi AddPrinter fun x myType gt myType ToStri
  • 仅使用 fprintf 和 fscanf 替换文本文件中的字符串

    抱歉问这么简单的问题 这是我作业的一部分 我被困住了 如你看到的 include
  • %d 为长整型

    下面的代码正确吗 据我的理解 它应该不能正常工作 但是在Dev C 编译器上 它可以正常工作 有人可以详细解释一下吗 include
  • 如何在 C++ 中的特定坐标处将字符串打印到控制台?

    我正在尝试在控制台中的指定坐标处打印字符 到目前为止我一直在使用非常丑陋的printf 033 d dH s n 2 2 str 但我只想问 C 是否有其他方法可以做到这一点 问题甚至不在于它丑陋 当我试图让自己成为一个更漂亮的函数时 问题
  • 使用 scanf 读取行或在特殊字符上中断

    是否可以使用 scanf 读取文本行 排除 n并在特殊 选择的 字符上中断 但包括该字符 这是我现在的表情 while scanf 49 n c x 1 但这不包括 是否可以中断阅读 但也读那个字符 好的 我正在使用约翰内斯 绍布 利特 c
  • OCaml 中的用户定义打印机

    printf fprintf等 全部接受 a转换 手册上说对于 a 用户定义的打印机 采用两个参数 并将第一个参数应用于 outchan 当前输出通道 和第二个参数 因此 第一个参数的类型必须为 out channel gt b gt un
  • 字符串格式化表达式 (Python)

    字符串格式化表达式 This is d s example 1 nice 字符串格式化方法调用 This is 0 1 example format 1 nice 我个人更喜欢方法调用 第二个示例 以提高可读性 但由于它是新的 因此随着时间
  • 有没有办法限制C中的scanf?

    我正在尝试编写一个正确的控制台应用程序以供链接列表使用 因此我需要在无限循环中扫描多个命令 并根据 switch case 选项执行某些操作 所以我为此使用 scanf 但问题是当下一行不包含数字时它会循环并开始打印甚至不是默认值 whil
  • 为什么以下代码不允许我使用 fgets 获取用户输入但可以使用 scanf?

    这是一个更大程序的简短摘录 但该程序的其余部分无关紧要 因为我认为我能够隔离该问题 我怀疑这与我使用 fgets 的方式有关 我读过 最好使用 fgets 而不是 scanf 但我似乎无法让它在这里正常工作 当我使用以下代码时 程序不会给我
  • 可以使用多个 _Generic 创建字符串文字吗?

    有没有办法使用 Generic在同一表达式中多次使用关键字来创建单个字符串文字 我正在寻找的是一种方法 例如生成要传递给的单个格式字符串printf 所有转换说明符都适应正确的类型 写作时this https stackoverflow c
  • awk 的 printf 插入多个变量的正确语法是什么?

    我复制了一些使用 printf 输出字符串在文件中出现的频率的代码 awk BEGIN print The number of times a appears in the file a a counter 1 END printf s n
  • 为什么 C 程序使用 Scanf 给出奇怪的输出?

    我目前正在学习 C 编程 并且遇到了这个奇怪的输出 Program will try functionalities of the scanf function include
  • “%d”需要“int”类型的参数,但参数 2 的类型为“long unsigned int”[-Wformat=] [重复]

    这个问题在这里已经有答案了 我不断收到编译警告 但我不知道如何解决它 d expects argument of type int but argument 2 has type long unsigned int 程序运行良好 但我仍然收

随机推荐

  • Python:opencv画点、圆、线、多边形、矩形

    简介 xff1a 机器学习视觉方向一般都需要在图像中添加标注框 xff0c 标注框有着很大的用处 xff0c 特别是对图像中某些需要关注的特征起到圈定的效果 xff0c 方便对特征选择进行处理 相关攻略 xff1a 机器学习 xff1a 基
  • adb重启或关机手机命令

    简介 xff1a 在某些特殊场景中 xff0c 例如手机真机不在身边 xff0c 但已通过adb进行连接 xff0c 可以使用命令进行远程关机或者重启 相关攻略 xff1a adb xff1a 常用命令 adb xff1a win10系统下
  • docker:更换镜像源

    简介 xff1a 因为国内的网络访问问题 xff0c 为加快拉取镜像速度 xff0c 建议设置docker国内镜像源 相关攻略 xff1a win10 xff1a 安装docker和测试安装redis centos7 6 xff1a 安装d
  • 七大顶级Linux桌面比较

    1七大顶级Linux桌面 xff1a Unity 对于开源Linux平台来说 xff0c 如何选择就是首要解决的问题 通常Linux发行版都有默认的桌面成为你的首选 xff0c 但目前可供选择的桌面环境种类繁多 特别是Ubuntu系统一个平
  • Linux:安装go环境

    简介 xff1a Go xff08 又称 Golang xff09 是 Google 的 Robert Griesemer xff0c Rob Pike 及 Ken Thompson 开发的一种静态强类型 编译型语言 Go 语言语法与 C
  • docker应用:搭建私有云盘

    简介 xff1a NextCloud是一个开源的云存储解决方案 xff0c 可以在自己的服务器上搭建个人云存储系统 它提供了与市面上主流云存储服务 xff08 如Dropbox Google Drive xff09 相似的功能 xff0c
  • Flask+A-Frame:交互式全景图展示网站

    简介 xff1a 通过结合 Flask 轻量级 Web 框架与 A Frame 3D 和 VR 技术 xff0c 实现了一个可交互的全景图展示功能 xff0c 用户可以在浏览器中自由观看 旋转和缩放全景图片 项目的核心是使用 Flask 搭
  • OpenCV合成全景图

    简介 xff1a OpenCV 利用特征提取 特征匹配 齐次估计 图像配准和图像融合等技术 xff0c 将一系列图像合成为全景图 OpenCV 和 Pillow 是两个功能强大的 Python 图像处理库 xff0c 但它们在处理全景图拼接
  • BDD行为驱动开发+Python案例解析

    简介 xff1a BDD xff08 Behavior Driven Development xff0c 行为驱动开发 xff09 是一种敏捷软件开发方法 xff0c 它强调软件应该按照预期的行为来开发 BDD的核心理念是使用自然语言编写的
  • 操作系统迭代、Debian安装教程

    前言 最近在考虑公司生产环境操作系统的迭代问题 目前 xff0c 公司业务主要跑在CentOS7和8上面 xff0c 由于CentOS早已停止了7和8的支持 xff0c 新版的CentOS Stream也从RHEL的下游变成了上游 xff0
  • Debian修改DNS

    原文链接 Debian的DNS文件默认为 etc resolv conf 查看当前的DNS cat etc resolv conf 下图中画出的就是当前系统的DNS 如果想修改DNS的话 xff0c 可以直接vim 来修改文件 xff0c
  • 配置JupyterLab远程密码访问

    文章目录 部署环境配置步骤启动和连接访问启动连接访问 有些时候因为某些原因 xff08 如本地机器资源不足 数据不能离网等 xff09 xff0c 需要使用本地电脑连接远程服务器进行开发工作 xff0c 在这里记录下如何在远程Linux上配
  • linux查看 jre 安装目录

    近期对接平安银行项目 xff0c 要求放国密 jar包到jre目录 xff0c 网上也找了一些命令 xff0c 下面这个亲测有用 xff0c 特此记录一下 xff0c 我的系统版本是3 10 0 693 el7 x86 64 步骤 1 使用
  • Python选择网卡发包及接收数据包

    当一台计算机上有多个网卡时 xff0c 需要选择对应IP地址的网卡进行发送数据包或者接受数据包 1 选择网卡发包 xff08 应用scapy xff09 xff1a plface 61 conf route route 34 34 0 为对
  • php 使用 Excel/reader.php, 导入excel到数据库 ,解决The file is not readable。。

    今天小伙伴上传excel到服务器 并导入到数据库中 xff0c 可是文件一直出现 The file is not readable 是哪里的代码抛出的异常呢 xff1f 是Spreadsheet Excel Reader类里面 其中抛出异常
  • “The Language Support for Java server crashed“ 问题解决方案

    The Language Support for Java server crashed 问题解决方案 环境 xff1a Windowsvs code 1 356 14日最新发布的VSCodeJavaInstaller online win
  • (循环读取网易云缓存文件转mp3)

    循环读取网易云缓存文件转mp3 import java io DataInputStream import java io DataOutputStream import java io File import java io FileIn
  • 洛谷P4180 [BJWC2010]严格次小生成树

    传送门 之前写过一次 xff0c 但是理解不深刻 xff0c 复习之后有了更加细节的一些理解 好了进入正题 首先 xff0c 我们需要知道次小生成树一定是在最小生成树的邻集中 xff0c 即次小生成树与最小生成树只会有一条边的差别 所以我们
  • MarkDown学习笔记

    MarkDown学习笔记 目录 MarkDown学习笔记 1 标题2 段落3 文字3 1斜体3 2加粗3 3斜体 43 加粗3 4删除线3 5下划线3 6字体背景 4 分隔线5 扩展语法的说明6 高亮 xff08 需要勾选扩展语法 xff0
  • 格式化标准输出函数printf()与格式化标准输入函数scanf()

    printf 函数与scanf 函数 文章目录 printf 函数与scanf 函数格式化标准输出函数 printf 相关函数 xff1a 返回值参数执行顺序打印较长字符串格式控制符 xff1a 输出缓冲区printf 的标志转义字符类型修