C语言学习之路(基础篇)—— 文件操作(上)
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!
概述
1) 磁盘文件和设备文件
-
磁盘文件
指一组相关数据的有序集合,通常存储在外部介质(如磁盘)上,使用时才调入内存。 -
设备文件
在操作系统中把每一个与主机相连的输入、输出设备看作是一个文件,把它们的输入、输出等同于对磁盘文件的读和写。
2) 磁盘文件的分类
计算机的存储在物理上是二进制的,所以物理上所有的磁盘文件本质上都是一样的:以字节为单位进行顺序存储。
从用户或者操作系统使用的角度(逻辑上)把文件分为:
- 文本文件: 基于字符编码的文件
- 二进制文件: 基于值编码的文件
3) 文本文件和二进制文件
3.1 文本文件
- 基于字符编码,常见编码有
ASCII
、UNICODE
等 - 一般可以使用文本编辑器直接打开
- 数
5678
的以ASCII
存储形式(ASCII码)为:(先将5678
转为ASCII
码值53、54、55、56
,再转为二进制)
00110101 00110110 00110111 00111000
3.2 二进制文件
- 基于值编码,自己根据具体应用,指定某个值是什么意思
- 把内存中的数据按其在内存中的存储形式原样输出到磁盘上
- 数
5678
的存储形式(二进制码)为: - 00010110 00101110
文件的打开和关闭
1) 文件指针
在C
语言中用一个指针变量指向一个文件,这个指针称为文件指针。
typedef struct
{short level; //缓冲区"满"或者"空"的程度 unsigned flags; //文件状态标志 char fd; //文件描述符unsigned char hold; //如无缓冲区不读取字符short bsize; //缓冲区的大小unsigned char *buffer;//数据缓冲区的位置 unsigned ar; //指针,当前的指向 unsigned istemp; //临时文件,指示器short token; //用于有效性的检查
}FILE;
FILE
是系统使用typedef
定义出来的有关文件信息的一种结构体类型,结构中含有文件名、文件状态和文件当前位置等信息。
声明FILE
结构体类型的信息包含在头文件"stdio.h"
中,一般设置一个指向FILE
类型变量的指针变量,然后通过它来引用这些FILE
类型变量。通过文件指针就可对它所指的文件进行各种操作。
C
语言中有三个特殊的文件指针由系统默认打开,用户无需定义即可直接使用:
- stdin: 标准输入,默认为当前终端(键盘),我们使用的
scanf
、getchar
函数默认从此终端获得数据。 - stdout: 标准输出,默认为当前终端(屏幕),我们使用的
printf
、puts
函数默认输出信息到此终端。 - stderr: 标准出错,默认为当前终端(屏幕),我们使用的
perror
函数默认输出信息到此终端。
2) 文件的打开
任何文件使用之前必须打开:
- 表头文件:
#include <stdio.h>
- 定义函数:
FILE * fopen(const char * filename, const char * mode);
- 功能:打开文件
- 参数:
filename:
需要打开的文件名,根据需要加上路径
mode:
打开文件的模式设置 - 返回值:
成功:文件指针
失败:NULL
第一个参数的几种形式:
FILE *fp_passwd = NULL;//相对路径:
//打开当前目录passdw文件:源文件(源程序)所在目录
FILE *fp_passwd = fopen("passwd.txt", "r");//打开当前目录(test)下passwd.txt文件
fp_passwd = fopen("./test/passwd.txt", "r");//打开当前目录上一级目录(相对当前目录)passwd.txt文件
fp_passwd = fopen("../passwd.txt", "r");//绝对路径:
//打开C盘test目录下一个叫passwd.txt文件
fp_passwd = fopen("c:/test/passwd.txt","r");
第二个参数的几种形式(打开文件的方式):
打开模式 | 含义 |
---|---|
r 或rb | 以只读方式打开一个文本文件(不创建文件,若文件不存在则报错) |
w 或wb | 以写方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件) |
a 或ab | 以追加方式打开文件,在末尾添加内容,若文件不存在则创建文件 |
r+ 或rb+ | 以可读、可写的方式打开文件(不创建新文件) |
w+ 或wb+ | 以可读、可写的方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件) |
a+ 或ab+ | 以添加方式打开文件,打开文件并在末尾更改文件,若文件不存在则创建文件 |
注意:
b
是二进制模式的意思,b
只是在Windows
有效,在Linux
用r
和rb
的结果是一样的Unix
和Linux
下所有的文本文件行都是\n
结尾,而Windows
所有的文本文件行都是\r\n
结尾- 在
Windows
平台下,以 “ 文本 ” 方式打开文件,不加b
: - 当读取文件的时候,系统会将所有的 “
\r\n
” 转换成 “\n
” - 当写入文件的时候,系统会将 “
\n
” 转换成 “\r\n
” 写入 - 以 “ 二进制 ” 方式打开文件,则读写都不会进行这样的转换
- 在
Unix/Linux
平台下, “ 文本 ” 与 “ 二进制 ” 模式没有区别,“\r\n
” 作为两个字符原样输入输出
示例1: 以只读方式打开一个文本文件(不创建文件,若文件不存在则报错)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main()
{ //打开一个文件,成功返回FILE结构体地址,失败返回NULL// 返回的文件流指针标识了打开的那个文件FILE* fp = fopen("hello.txt", "r"); // 只读,不创建文件,若文件不存在则报错if (NULL == fp){perror("open error");return;}return 0;
}
输出结果
open error: No such file or directory
示例2: 以写方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件)
FILE* fp = fopen("hello.txt", "w"); // 以写方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件)
if (NULL == fp)
{perror("open error");return;
}
编辑"hello.txt
"文件,并填写数据后保存,如果再次执行代码,文件内容将被清空
3) 文件的关闭
任何文件在使用后应该关闭:
-
打开的文件会占用内存资源,如果总是打开不关闭,会消耗很多内存
-
一个进程同时打开的文件数是有限制的,超过最大同时打开文件数,再次调用
fopen
打开文件会失败 -
如果没有明确的调用
fclose
关闭打开的文件,那么程序在退出的时候,操作系统会统一关闭。 -
表头文件:
#include <stdio.h>
-
定义函数:
int fclose(FILE * stream);
-
功能:关闭先前fopen()打开的文件。此动作让缓冲区的数据写入文件中,并释放系统所提供的文件资源。
-
参数:
stream:
文件指针 -
返回值:
成功:0
失败:-1
FILE* fp = fopen("hello.txt", "w"); // 以写方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件)
if (NULL == fp)
{perror("open error");return -1;
}
fclose(fp);
文件的顺序读写
1) 按照字符读写文件fgetc、fputc
1.1 写文件
- 表头文件:
#include <stdio.h>
- 定义函数:
int fputc(int ch, FILE * stream);
- 功能:将
ch
转换为unsigned char
后写入stream
指定的文件中 - 参数:
ch:
需要写入文件的字符
stream:
文件指针 - 返回值:
成功:成功写入文件的字符
失败:返回-1
示例1:清空写入
FILE* fp = fopen("hello.txt", "w");
fputc('a', fp);
fclose(fp);
示例2:追加写入
FILE* fp = fopen("hello.txt", "a");
fputc('b', fp);
fclose(fp);
示例3:清空循环写入
FILE* fp = fopen("hello.txt", "w");
char buf[] = "this is a test for fputc";
int i = 0;
int n = strlen(buf);
for (i = 0; i < n; i++)
{//往文件fp写入字符buf[i]int ch = fputc(buf[i], fp);printf("ch = %c\n", ch);
}
fclose(fp);
1.2 读文件
- 表头文件:
#include <stdio.h>
- 定义函数:
int fgetc(FILE * stream);
功能:从stream
指定的文件中读取一个字符
参数:
stream:
文件指针
返回值:
成功:返回读取到的字符
失败:-1
示例:读取文件中的内容
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main()
{FILE* fp = fopen("hello.txt", "r");char buf[128] = "";int i = 0;while ((buf[i++] = fgetc(fp)) != -1);printf("%s\n", buf);return 0;
}
1.3 文件结尾
在C
语言中,EOF
表示文件结束符(end of file
)。在while
循环中以EOF
作为文件结束标志,这种以EOF
作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII
代码值的形式存放。我们知道,ASCII
代码值的范围是0~127
,不可能出现-1
,因此可以用EOF
作为文件结束标志。
#define EOF (-1)
示例:使用EOF
作为结束符,存在的问题
// 写入-1
FILE* fp = fopen("hello.txt", "w");
if (NULL == fp)
{perror("open error");return -1;
}
char buf[10] = {97,-1,-2,98,99};
int i = 0;
while (buf[i] != 0)
{fputc(buf[i], fp);i++;
}
fclose(fp);
int main()
{ FILE* fp = fopen("hello.txt", "r");char buf[128] = "";int i = 0;while ((buf[i++] = fgetc(fp)) != EOF);printf("%s\n", buf);return 0;
}
当把数据以二进制形式存放到文件中时,就会有-1
值的出现,因此不能采用EOF
作为二进制文件的结束标志。为解决这一个问题,ANSI C
提供一个feof
函数,用来判断文件是否结束。feof函数既可用以判断二进制文件又可用以判断文本文件。
- 表头文件:
#include <stdio.h>
- 定义函数:
int feof(FILE * stream);
- 功能:检测是否读取到了文件结尾。判断的是最后一次 “ 读操作的内容 ” ,不是当前位置内容(上一个内容)。
- 参数:
stream:
文件指针 - 返回值:
非0
值:已经到文件结尾
0:
没有到文件结尾
示例:使用feof
函数来判断文件是否结束
int main()
{ FILE* fp = fopen("hello.txt", "r");char buf[128] = "";int i = 0;do{buf[i++] = fgetc(fp);} while (!feof(fp));printf("%s\n", buf);return 0;
}
1.4 强化训练:实现cp、cat命令
案例1:拷贝文本文件
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>void copyFile(char srcFileName[128], char dstFileName[128])
{// 打开src文件 创建dst文件FILE* fpread = fopen(srcFileName, "r");FILE* fpwrite = fopen(dstFileName, "w");if (NULL == fpread || NULL == fpwrite){perror("open error");return -1;}while (1){ int ch;// 读取src一个字符ch = fgetc(fpread);if (feof(fpread))break;// 写入到dst文件fputc(ch, fpwrite);}//关闭fclose(fpread);fclose(fpwrite);
}int main()
{ char srcFileName[128] = "hello.txt";char dstFileName[128] = "hello2.txt";copyFile(srcFileName, dstFileName);return 0;
}
案例2:拷贝图片文件
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>void copyFile(char srcFileName[128], char dstFileName[128])
{// 打开src文件 创建dst文件FILE* fpread = fopen(srcFileName, "rb"); FILE* fpwrite = fopen(dstFileName, "wb");if (NULL == fpread || NULL == fpwrite){perror("open error");return -1;}while (1){ int ch;// 读取src文件ch = fgetc(fpread);if (feof(fpread))break;// 写入到dst文件fputc(ch, fpwrite);}//关闭fclose(fpread);fclose(fpwrite);
}int main()
{ char srcFileName[128] = "csdn_cdtaogang_blog.png";char dstFileName[128] = "my_csdn_blog.png"; copyFile(srcFileName, dstFileName);return 0;
}
案例3:实现cat
命令,把文件内容输出到终端
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main()
{// 打开文件FILE *fpread = fopen("04拷贝案例.c", "r");if (NULL == fpread){perror("open error");return -1;}// 读取文件int ch;while (1){ch = fgetc(fpread);if (feof(fpread))break;fputc(ch, stdout); //输出到终端}fclose(fpread);return 0;
}
2) 按照行读写文件fgets、fputs
2.1 写文件
- 表头文件:
#include <stdio.h>
- 定义函数:
int fputs(const char * str, FILE * stream);
功能:将str
所指定的字符串写入到stream
指定的文件中,字符串结束符'\0'
不写入文件。 - 参数:
str:
字符串
stream:
文件指针 - 返回值:
成功:0
失败:-1
示例1:将一字符串写入到文件
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main()
{// 打开文件FILE *fpread = fopen("a.txt", "w");if (NULL == fpread){ perror("open error");return -1;}// 写入字符串char buf[] = "hellocdtaogang";fputs(buf, fpread);return 0;
}
示例2:按照行向文件写入数据,遇到\0
结束写入,遇到\n
就换行
int main()
{// 打开文件FILE *fpread = fopen("a.txt", "w");if (NULL == fpread){ perror("open error");return -1;}// 写入字符串,遇到\0就结束char buf[] = "hello\0cdtaogang";fputs(buf, fpread);return 0;
}
int main()
{// 打开文件FILE *fpread = fopen("a.txt", "w");if (NULL == fpread){ perror("open error");return -1;}// 写入字符串,遇到\0就结束,遇到\n就换行//char buf[] = "hello\0cdtaogang";char buf[] = "hello\ncdtaogang";fputs(buf, fpread);return 0;
}
2.2 读文件
- 表头文件:
#include <stdio.h>
- 定义函数:
char * fgets(char * str, int size, FILE * stream);
- 功能:从
stream
指定的文件内读入字符,保存到str
所指定的内存空间,直到出现换行字符、读到文件结尾或是已读了size - 1
个字符为止,最后会自动加上字符'\0'
作为字符串结束。 - 参数:
str:
字符串
size:
指定最大读取字符串的长度(size - 1
)
stream:
文件指针 - 返回值:
成功:成功读取的字符串
读到文件尾或出错:NULL
示例1:从文件中读取一字符串
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main()
{// 打开文件FILE* fpread = fopen("a.txt", "r");if (NULL == fpread){perror("open error");return -1;}char buf[1024] = "";// 读取文件fgets(buf, sizeof(buf), fpread);printf("%s", buf);fclose(fpread);return 0;
}
示例2:从文件中读取一字符串,遇到\n
就结束
示例3:使用fgets
和fputs
完成文本文件的拷贝(二进制文件图片读取无法使用,因为字符串二进制文件有很多0,fgets遇到0就读取结束了,同理fputs写入文件也是一样,所以它们只能操作文本文件)
int main()
{// 打开a文件 创建b文件FILE* fpread = fopen("a.txt", "r");FILE* fpwrite = fopen("b.txt", "w");if (NULL == fpread || NULL == fpwrite){perror("open error");return -1;}char buf[128] = "";char* p = NULL;while (1){// 读取a文件p = fgets(buf, sizeof(buf), fpread);if (NULL == p)break;// 写入到b文件fputs(buf, fpwrite);}//关闭fclose(fpread);fclose(fpwrite);return 0;
}
2.3 强化训练:文件版四则运算
有个文件大小不确定,每行内容都是一个四则运算表达式,还没有算出结果,写一个程序,自动算出其结果后修改文件。
第一步:随机生成10个
四则运算表达式,并写入到文件中。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define CALC_NUM 10 // 要生成四则运算表达式的个数// 获取10个四则运算表达式并写入到文件中
void write_data()
{ // 生成并打开calc.txt文件FILE* fp = fopen("calc.txt", "w");if (NULL == fp){perror("open error");return -1;}// 设置随机种子srand(time(NULL));// 定义基本运算符数组char ysf[] = { '+', '-', '*', '/' };int a, b = 0;char c = 0;// 定义一个buf数组来保存四则运算表达式char buf[128] = "";for (int i = 0; i < CALC_NUM; i++){// 产生随机数1~100int a = rand() % 100 + 1;int b = rand() % 100 + 1;// 随机产生0~3的数int c = rand() % 4; // 0,1,2,3 对应运算符数组下标// 组包sprintf(buf, "%d%c%d=\n", a, ysf[c], b);printf(buf);// 写入到calc.txt文件中fputs(buf, fp);}// 关闭文件fclose(fp);
}int main()
{ // 调用write_data();return 0;
}
第二步:读取calc.txt
文件中的内容一行一行的读取,读取一次就进行解包计算结果,再将结果组包到表达式中
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define CALC_NUM 10 // 要生成四则运算表达式的个数
#define FILE_PATH "calc.txt" // 文件路径// 封装打开文件方法
FILE* open_file(char* str)
{FILE* fp = fopen(FILE_PATH, str);if (NULL == fp){perror("open error");return -1;}return fp;
}// 封装关闭文件方法
void close_file(FILE* fp)
{fclose(fp);return;
}// 获取10个四则运算表达式并写入到文件中
void write_data()
{ // 生成并打开calc.txt文件FILE* fp = open_file("w");// 设置随机种子srand(time(NULL));// 定义基本运算符数组char ysf[] = { '+', '-', '*', '/' };int a, b = 0;char c = 0;// 定义一个buf数组来保存四则运算表达式char buf[128] = "";for (int i = 0; i < CALC_NUM; i++){// 产生随机数1~100int a = rand() % 100 + 1;int b = rand() % 100 + 1;// 随机产生0~3的数int c = rand() % 4; // 0,1,2,3 对应运算符数组下标// 组包sprintf(buf, "%d%c%d=\n", a, ysf[c], b);printf(buf);// 写入到calc.txt文件中fputs(buf, fp);}// 关闭文件close_file(fp);
}void read_data()
{ // 读取文件FILE* fp = open_file("r");int a, b = 0;char c = 0;char* p = NULL;char buf[128] = "";char new_buf[128] = "";int res = 0;while (1){p = fgets(buf, sizeof(buf), fp); //读一行的数据72*65=\nif (NULL == p){break;}// 拆包sscanf(buf, "%d%c%d", &a, &c, &b); // 72*65// switch判断运算符switch (c){case '+':res = a + b;break;case '-':res = a - b;break;case '*':res = a * b;break;case '/':res = a / b;break;}// 再组包,将计算结果组进去sprintf(new_buf, "%d%c%d=%d\n", a, c, b, res); // 72*65=4680\nprintf("%s", new_buf);}
}int main()
{ // 写入write_data();printf("\n");// 读取read_data();return 0;
}
第三步:如果直接从第二步去写入结果数据会导致原本的表达式数据被覆盖,比如calc.txt
文件13+15=28\n34-21=13\n...
在读取第一个\n
后写入会直接将\n
后面的数据覆盖掉,那么就读取不到后面的数据了,解决方法则是将每行组包数据保存到二维数组中即可
void read_data()
{ // 读取文件FILE* fp = open_file("r");int a, b = 0;char c = 0;char* p = NULL;char buf[128] = "";char new_buf[128] = "";int res = 0;// 定义二维数组保存每行组包结果数据char new_buff[10][128] = { 0 };int i= 0;while (1){p = fgets(buf, sizeof(buf), fp); //读一行的数据72*65=\nif (NULL == p){break;}// 拆包sscanf(buf, "%d%c%d", &a, &c, &b); // 72*65// switch判断运算符switch (c){case '+':res = a + b;break;case '-':res = a - b;break;case '*':res = a * b;break;case '/':res = a / b;break;}// 再组包,将计算结果组进去, //sprintf(new_buf[i], "%d%c%d=%d\n", a, c, b, res); // 72*65=4680\n//printf("%s", new_buf);sprintf(new_buff[i], "%d%c%d=%d\n", a, c, b, res); // 72*65=4680\ni++;}// 关闭文件close_file(fp);// 再次打开calc.txt文件,写入含结果的四则运算表达式fp = open_file("w");for (int j = 0; j < i; j++){fputs(new_buff[j], fp);}// 关闭文件close_file(fp);
}
也可以将新组包后的结果数据写入到指针数组中,只需要malloc申请空间即可保存组包数据。
char* new_buff[10] = { NULL };
int i= 0;
while (1)
{p = fgets(buf, sizeof(buf), fp); //读一行的数据72*65=\nif (NULL == p){break;}// 拆包sscanf(buf, "%d%c%d", &a, &c, &b); // 72*65// switch判断运算符switch (c){case '+':res = a + b;break;case '-':res = a - b;break;case '*':res = a * b;break;case '/':res = a / b;break;}// 再组包,将计算结果组进去, //sprintf(new_buf[i], "%d%c%d=%d\n", a, c, b, res); // 72*65=4680\n//printf("%s", new_buf);new_buff[i] = (char*)malloc(128);sprintf(new_buff[i], "%d%c%d=%d\n", a, c, b, res); // 72*65=4680\ni++;
}
3) 按照格式化文件fprintf、fscanf
3.1 写文件
- 表头文件:
#include <stdio.h>
- 定义函数:
int fprintf(FILE * stream, const char * format, ...);
- 功能:根据参数
format
字符串来转换并格式化数据,然后将结果输出到stream
指定的文件中,指定出现字符串结束符'\0'
为止。 - 参数:
stream:
已经打开的文件
format:
字符串格式,用法和printf()
一样 - 返回值:
成功:实际写入文件的字符个数
失败:-1
示例:使用fprintf
对比sprint
组包后fputs
写入
printf("%04d:%02d:%02d", year, month, day);
sprintf(buf, "%04d:%02d:%02d", year, month, day)
fprintf(fp, "%04d:%02d:%02d", year, month, day)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>int main()
{int year = 2022;int month = 12;int day = 2;char buf[128] = "";FILE* fp = NULL;fp = fopen("fprintf.txt", "w");if (!fp){perror("open error");return -1;}// 组包sprintf(buf, "%04d:%02d:%02d", year, month, day);// 写入文件fputs(buf, fp);return 0;
}
// 组包//sprintf(buf, "%04d:%02d:%02d", year, month, day);// 写入文件//fputs(buf, fp);//使用fprintf格式化写入文件fprintf(fp, "%04d:%02d:%02d", year, month, day);// 关闭文件fclose(fp);
3.2 读文件
- 表头文件:
#include <stdio.h>
- 定义函数:
int fscanf(FILE * stream, const char * format, ...);
- 功能:从
stream
指定的文件读取字符串,并根据参数format
字符串来转换并格式化数据。 - 参数:
stream:
已经打开的文件
format:
字符串格式,用法和scanf()
一样 - 返回值:
成功:参数数目,成功转换的值的个数
失败:- 1
示例:使用fscanf
对文件数据进行拆包
scanf("%d:%d:%d", &year, &month, &day);
sscanf(buf, "%d:%d:%d", &year, &month, &day);
fscanf(fp, "%d:%d:%d", &year, &month, &day);
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>int main()
{FILE* fp = NULL;fp = fopen("fprintf.txt", "r"); // 2022:12:02if (!fp){perror("open error");return -1;}int year = 0, month = 0, day = 0;// 使用fscanf进行数据拆包fscanf(fp, "%d:%d:%d", &year, &month, &day);printf("%d-%d-%d", year, month, day);// 关闭文件fclose(fp);return 0;
}
3.3 强化训练:文件版排序
将10
个随机数写入到abc.txt
中,然后将abc.txt
文件中的随机数进行排序后写入
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define CALC_NUM 10 // 要生成1~3位的整数个数
#define FILE_PATH "abc.txt" // 文件路径int main()
{// 设置随机种子,并写入数据FILE* fp = open_file("w");srand(time(NULL));for (int i = 0; i < CALC_NUM; i++){// 产生随机数1~300int num = rand() % 300 + 1;// 格式化后写入fprintf(fp, "%d\n", num);}// 关闭文件close_file(fp);// 读取文件中写入的随机数,并保存到数组中int num = 0;int nums[10] = { 0 };int n = sizeof(nums) / sizeof(nums[0]);fp = open_file("r");for (int i = 0; i < n; i++){// 格式化读取字符串fscanf(fp, "%d", &num);// 将随机数保存到数组中nums[i] = num;}close_file(fp);// 对nums数组元素进行排序for (int i = 0; i < n - 1; i++) //比较的轮数{ // 因为每次比较的次数都要减1,刚好i每次加1,所以每一轮比较的次数就是n-1-ifor (int j = 0; j < n - 1 - i; j++) // 每一轮比较的次数{if (nums[j] > nums[j + 1]) // 交换位置{int temp = nums[j];nums[j] = nums[j + 1];nums[j + 1] = temp;}}}// 再将排好序的nums数组写入到abc.txt文件fp = open_file("w");for (int i = 0; i < n; i++){ // 将nums每个元素进行组包fprintf(fp, "%d\n", nums[i]);}close_file(fp);return 0;
}
4) 按照块读写文件fread、fwrite
4.1 写文件
- 表头文件:
#include <stdio.h>
- 定义函数:
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
- 功能:以数据块的方式给文件写入内容
- 参数:
ptr:
准备写入文件数据的地址
size:
size_t
为unsigned int
类型,此参数指定写入文件内容的块数据大小
nmemb:
写入文件的块数,写入文件数据总大小为:size * nmemb
stream:
已经打开的文件指针 - 返回值:
成功:实际成功写入文件数据的块数目,此值和nmemb
相等
失败:0
示例:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>typedef struct _std
{int age;char name[16];
}STD;int main()
{ int cont = 0;STD buf[3] = { {20, "cdtaogang"}, {21, "laoli"}, {22, "laozhao"} };FILE* fp = fopen("fwrite.txt", "w");// fwrite 第二个参数写1 ,是为了返回值刚好是写入文件的字节数,这也是个技巧cont = fwrite(buf, 1, sizeof(buf), fp);// cont = fwrite(buf, sizeof(buf), 1, fp);// 验证返回值是否等于字节数if (cont == sizeof(buf)){printf("cont == sizeof(buf) == %d", cont); // 60 (int:4 + char name[16]:16)*3}return 0;
}
4.2 读文件
- 表头文件:
#include <stdio.h>
- 定义函数:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
- 功能:以数据块的方式从文件中读取内容
- 参数:
ptr:
存放读取出来数据的内存空间
size:
size_t
为unsigned int
类型,此参数指定读取文件内容的块数据大小
nmemb:
读取文件的块数,读取文件数据总大小为:size * nmemb
stream:
已经打开的文件指针 - 返回值:
成功:实际成功读取到内容的块数,如果此值比nmemb
小,但大于0
,说明读到文件的结尾。
失败:0
示例1:从结构体数组中,读取一个一个结构体大小
#pragma once
typedef struct _std
{int age;char name[16];
}STD;
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include "type.h"int main()
{ // 定义结构体数组STD buf[3];// 全部设置为0memset(buf, 0, sizeof(buf));FILE* fp = NULL;fp = fopen("fwrite.txt", "r"); if (!fp){perror("open error");return -1;}int cont = 0;// 从结构体数组中,读取一个一个结构体大小for (int i = 0; i < 3; i++){cont = fread(&buf[i], 1, sizeof(STD), fp);printf("cont=%d\n", cont);printf("%d %s\n", buf[i].age, buf[i].name);}return 0;
}
输出结果
cont=20
20 cdtaogang
cont=20
21 laoli
cont=20
22 laozhao
示例2:一次性读完整个结构体数组大小
int main()
{ // 定义结构体数组STD buf[3];// 全部设置为0memset(buf, 0, sizeof(buf));FILE* fp = NULL;fp = fopen("fwrite.txt", "r"); if (!fp){perror("open error");return -1;}int cont = 0;// 一次性读完整个结构体数组大小fread(buf, 1, sizeof(buf), fp);for (int i = 0; i < 3; i++){printf("%d %s\n", buf[i].age, buf[i].name);}return 0;
}
输出结果
20 cdtaogang
21 laoli
22 laozhao
4.3 强化训练:大文件拷贝
实现二进制大文件的拷贝
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 1024 * 64int main()
{printf("Start Copy\n");// 拷贝的源地址char* src_file = "a.mp4";// 拷贝的目标地址char* dst_file = "b.mp4";// 以 可读 + 二进制 方式打开文件// r 表示可读打开方式// 打开方式后添加 b , 表示以二进制形式打开FILE* p_src = fopen(src_file, "rb");// 如果打开失败 , 直接返回if (p_src == NULL) {printf("src_file open failed");return 0;}// 以 可写 + 二进制 方式打开文件// w 表示可写打开方式// 打开方式后添加 b , 表示以二进制形式打开FILE* p_dst = fopen(dst_file, "wb");// 如果打开失败 , 直接返回if (NULL == p_dst) {printf("dst_file open failed");return 0;}// 为缓冲区内存申请堆内存char* buffer = malloc(BUFFER_SIZE);// 判定文件指针是否指向文件末尾// 如果指向末尾 , 说明该文件while (!feof(p_src)) {// 读取源文件数据到 buffer 缓冲区, 读取 buffer_size 个字节// 如果没有那么多字节 , 将读取的字节数返回int res = fread(buffer, 1, BUFFER_SIZE, p_src);// 将读取到缓冲区中的数据写出到目标文件中fwrite(buffer, 1, res, p_dst);}// 释放缓冲区内存free(buffer);// 关闭源文件fclose(p_src);// 关闭目标文件fclose(p_dst);printf("Copy Success");return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-3835817.html
如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!
【JavaSE】【面向对象06】类的五大成员之内部类
类的成员之五:内部类Inner Class 1、为什么要有内部类 1.内部类场景 当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类。 2.内部…...

可视化监管智能高效?智慧园区三维可视,功能划分如此详细统
一、智慧园区大致模块 设施管理检测自动化:通过自动化技术、物联网技术的应用,将园区基础设施逐渐升级为智能设备,可以远程监控和控制实现智能化。 各部门协调管理一体化:智慧化管理实现后,能够轻松掌握园区运行情况…...

【数组】移动所有球到每个盒子所需的最小操作数
1.题目描述 给你一个混合字符串 s ,请你返回 s 中 第二大 的数字,如果不存在第二大的数字,请你返回 -1 。 混合字符串 由小写英文字母和数字组成。 示例 1: 输入:s "dfa12321afd" 输出:2 解释…...

造价师告诉你如何解决砌体结算九大争议点
构造柱 1、争议 设置位置,兵家必争之地。施工单位图形中布置的构造柱,往往多于结构设计说明要求。而引用的图集做法,又未经甲方的认可。结算时,审计人员以依据不充分为由,去掉“多余”部分。 2、解决 施工二次设计…...

数据库查询优化问题
原先数据库没有好好学习,感觉一直是似懂非懂的状态,很多原理也不懂,今天抽时间查阅一些资料自己也总结了一些。本文数据库索引原理部分主要参考博文:http://www.cnblogs.com/aspwebchh/p/6652855.html ,是一片很优秀的…...

java网课。
Java网课 0902: 【1】具体dos命令; (1)切换盘符:c: d: e: 大小写不区分 (2)显示详细信息:dir (3)改变当前目录:cd (4)当前…...

【docker专栏2】CentOS操作系统安装DockerCE
目录一、前置要求二、更新软件源信息三、安装 Docker-CE四、卸载Docker CE 为大家介绍在CentOS操作系统中安装docker的过程,linux其他发行版本安装docker方法可以参考官方提供的安装教程 一、前置要求 首先确定你是CentOS7及以上版本,按照官方文档说明目前安装docker ce最低的…...

C++I/O流详解
目录 一,引入 二,C中的输入输出 1,输入输出流分类 2,I/O流类的安全性和可扩展性 (1)I/O流类的安全性 (2)I/O流类的扩展性 三,流类库简介 1,I/O流类库 2,缓冲区类 四,标准输…...

创建并连接oracle的PDB
1.进入阿里云服务器 su - oracle 2.以dba身份进入oracle sqlplus / as sysdba 3.查看CDB和PDB SQL> show con_name pdbs;CON_NAME ------------------------------ CDB$ROOTCON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ----…...

python中的异常处理
异常...

listview和LitePal2
Student stu LitePal.find(Student.class, model.getId()); //类名,查找id 修改: //先查询到数据,然后更改数据, Student stu LitePal.find(Student.class, 1); stu.setUsername(“admin”); stu.save(); //更新指定id的数据 Student stu new …...

Python实现NBA文字直播间
上班想看比赛?害怕被老大发现?心痒痒?Python写一个NBA文字直播间,上班放心摸鱼看比赛。该文字直播间的实现原理其实就是爬虫,期间需要通过抓包分析某网站的文字直播请求过程,把每个请求过程用爬虫来实现。不…...

安装依赖时报错:npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving
F:\study\heima\vueCode\demo3>npm i axios -S npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue/eslint-config-standard6.1.0 npm ERR! Found: eslint-plugin-vue8.7.1 npm ERR! node_modules/eslint-plugin-vue npm...

app支付宝验证登录
支付宝开发平台 上图是官方提供的支付宝授权登录流程,具体看一下: 在小程序端获取 auth_code,目的是获取用户授权码 把第一步获取的授权码 auth_code 传到咱们自己的后台,也就是说后台需要编写一个接口,方便小程序端…...

JS对象方法总结练习(持续更新)
基本功要扎实,且适时的使用方法能极大提升代码简洁度与效率 如何根据不同情况选择更合适的方法?(对方法有自己的分类) 创建: 值以键值对的方式来书写,冒号分隔。 JavaScript 对象是被命名值的容器。 JS 1.JS对象表示类的实例 2…...

【POJ No. 1019】数字序列 Number Sequence
【POJ No. 1019】数字序列 Number Sequence 北大OJ 题目地址 【题意】 给出单个正整数i ,编写程序以找到位于数字组S 1 , S 2 , …, Sk 序列中第i 位上的数字。每个组Sk 都由一系列正整数组成,范围为1~k ,一个接一个地写入。 序…...
Retrofit-OkHttp 动态切换服务器地址
需求: 一个app可能需要根据地区、用户等,动态设置不同的服务器地址,而okhttp为单例模式,不支持动态切换 方案: 利用okhttp的拦截器功能,实现该需求 1、利用headers参数,设置fixed标记的为地…...

解决unix:///var/run/supervisor/supervisor.sock no such file问题
使用环境 centos 7 supervisor 3.4.0 原因 使用过程中可能是因为机器宕机,导致supervisor没有正常关掉,导致/var/run目录下supervisor.sock文件被删除,找不到所以失败报错unix:///var/run/supervisor/supervisor.sock no such file 解决 …...

大数据技术原理与应用(一)
一、Hadoop入门 1.1大数据技术介绍 大数据技术生态体系: Hadoop 元老级分布式海量数据存储、处理技术系统,擅长离线数据分析 Hbase 基于hadoop的分布式海量数据库,离线分析和在线业务通吃 Hive sql 基于hadoop的数据仓库工具,使…...

Python学会使用虚拟环境——pipenv
一. 为什么要使用虚拟环境 在虚拟环境中安装和卸载库不会影响全局库便于使用特定版本的库,不同项目可以使用不同版本的库,不会相互干扰其它人根据虚拟环境文件可以很方便的搭建与开发者相同的环境 二.为什么选择pipenv 简单,方便。 三.安…...

android Livedata最详尽的使用场景分析,让你爱上Livedata
关注我的公众号 “安安安安卓” 免费学知识 很大一部分文字内容描述是直接翻译官网的 Livedata 概览 LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力 如果观察者(由 Observer 类表示)的生命周…...

阿里云高效计划教程
一.实际操作 创建资源 创建资源 在页面左侧,单击 云产品资源 下拉列表,查看本次实验所需资源。 单击屏幕右侧 创建资源 ,免费创建当前实验所需云产品资源。 说明: 资源创建过程需要1~3分钟。完成实验资源的创建后,您…...

[附源码]计算机毕业设计springboot校园服装租赁系统
项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…...

920_AUTOSAR_TPS_SoftwareComponentTemplate25_E2E端对端保护2
全部学习汇总: https://github.com/GreyZhang/hack_autosar 继续学习AUTOSAR,看一下官方文档。 根据 [19],以下约束适用于 EndToEndProtection 的属性(请注意,附加 M1 约束适用于 [19] 中所述):…...

2021年大数据ELK(二十一):Logstash简介和安装
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点。 目录 Logstash简介和安装 一、简介 1、经典架构 2、对比Flume 3、对比FileBeat 二、安装Logstash 1、切换到lanson用…...

如何提高炼丹速度?
1.并发程序——善用multiprocessing 原因:对一百万张照片进行预处理/进行分析/进行裁切,可以利用并发进行加速 Ps:因为python内部解释器PID锁的原因,因此多线程在python当中并不可以得到加速 也可以采用异步等写出非常复杂的逻辑࿰…...

ping测试本地局域网
for i in seq 1 252 doping -c 1 192.168.111.$i >/dev/nullif [ $? -eq 0 ]thenecho "192.168.111.$i成功"elseecho "192.168.111.$i失败" >>/root/ab.shfi done...

把你的 Mac 从 Catalina 降级回 Mojave 系统的避坑指南
三种恢复系统的快捷键:https://support.apple.com/zh-cn/HT204904 Mojave系统的下载地址:https://support.apple.com/zh-cn/HT204904 终端输入的代码:https://support.apple.com/zh-cn/HT201372 确定您的 Mac 使用的是哪个 macOS 版本…...

222页8万字智慧园区IOC平台运维管理平台解决方案
目 录 第一章 项目概述 7 1.1 园区格局的变化 7 1.1.1 传统安防面临的不足与挑战 7 1.1.2 园区安防未来的发展趋势 7 1.2 需求分析 8 1.2.1 平台集成化 8 1.2.2 数据可视化 8 1.2.3 管控全面化 8 1.2.4 覆盖高清化 9 1.2.5 指挥简易化 9 1.2.6 建设智能化 9 1.3 建设思路 9 1.3…...

Thymeleaf 操作 2021.6.15
目录 什么是Thymeleaf 模板引擎介绍 Thymeleaf介绍 学习Thymeleaf必知的知识点 Springboot MVC介绍 动静分离 第一个Thymeleaf程序 创建程序,添加依赖 编写controller 编写Thymeleaf页面 启动程序 Thymeleaf语法详解 配置 常用标签 链接表达式: {…} 变量表达…...

Error:(18, 46) java: 程序包sun.reflect.generics.reflectiveObjects不存在 的解决方法
idea使用了自带的javac 11, 改成自己安装的java8,就好了...

分布滞后线性和非线性模型(DLNM)分析空气污染(臭氧)、温度对死亡率时间序列数据的影响...
全文下载链接 http://tecdat.cn/?p23947 分布滞后非线性模型(DLNM)表示一个建模框架,可以灵活地描述在时间序列数据中显示潜在非线性和滞后影响的关联。该方法论基于交叉基的定义,交叉基是由两组基础函数的组合表示的二维函数空间…...
方舟编译器
华为方舟编译器是华为公司专门为软件厂商研发的统一编程平台,包含编译器、工具链、运行时等关键部件。该编译器支持多种编程语言、多种芯片平台的联合编译与运行,能够有效解决安卓程序“边解释边执行”的低效率问题。 2019年8月31日,华为方舟…...

Ckeditor5完全开发指南教程(一)安装篇
Ckeditor5 自定义安装防出错实战教程(一)安装篇 本教程重点介绍自定义安装,需求不高的,可以下载官网集成版和自定义版(在线生成online-builder)。 网上很多教程拷贝来拷贝去,不是链接错&#…...

排序方法总结(稳定性和复杂度问题)
排序方法总结(稳定性和复杂度问题) 文章目录排序方法总结(稳定性和复杂度问题)前言稳定性时间复杂度一、直接插入法排序二、折半插入法排序三、希尔排序四、选择排序五、锦标赛排序六、堆排序七、冒泡排序八、快速排序九、归并排序…...

爱了爱了!docker拉取镜像提示unspportedOS
一面 1.你觉得项目中用了MQ给你带了什么好处,设计初衷是什么?会带来什么缺点嘛? (项目针对性比较强,不细说) 2.在网页键入taobao.com,到返回一个页面,这期间都发生了什么? 3.你说到了session和cookie,这两者有什么区别&…...

[NPUCTF2020]EzRSA Writeup
[NPUCTF2020]EzRSA 题目描述 from gmpy2 import lcm , powmod , invert , gcd , mpz from Crypto.Util.number import getPrime from sympy import nextprime from random import randint p getPrime(1024) q getPrime(1024) n p * q gift lcm(p - 1 , q - 1) e 54722 f…...

java计算机毕业设计在线教育系统源程序+mysql+系统+lw文档+远程调试
java计算机毕业设计在线教育系统源程序mysql系统lw文档远程调试 java计算机毕业设计在线教育系统源程序mysql系统lw文档远程调试本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse 前端技术࿱…...

Ajax(javaweb常用)
目录AjaxjavaScript 原生 Ajax 请求JQuery 的 Ajax 请求Ajax AJAX 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的 网页开发技术。 ajax 是一种浏览器异步发起请求。局部更新页面的技术 jav…...

idea如何实现修改代码即时生效
一、spring-boot-devtools 在pom中直接引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency> 设置以下两项࿰…...

python中可迭代对象是什么意思_python中可迭代对象是什么
python中可迭代对象是:存储了元素的一个容器对象,且容器中的元素可以通过“__iter__( )”方法或“__getitem__( )”方法访问。可迭代对象不能独立进行迭代,可通过“for…in”遍历来完成。Python中可迭代对象(Iterable)并不是指某种具体的数据…...

工业数据与数据采集应用如何在ARM+FPGA异核架构的米尔MYC-JX8MMA7核心板应用
随着通信与网络技术、互联网的发展,工业管理数据化、网络化、智能化已成大势所趋,利用工业物联网完成工业控制是智慧工厂中必不可少的一部分。传统的控制与数据采集系统,主机一旦需要同时与多个数据采集设备保持高速通信,并要承担…...

Wireshark实验《Wireshark的基本使用》
在介绍使用之前,先介绍一下安装及可能遇到问题 1.安装:软件下载路径:wireshark官网 选择相应的http://www.win10pcap.org/download/版本下载,然后一直Next就可以。 2.如果你是win10系统,那么使用中会遇到和我一样的问题…...

android 电话录音功能,Android实现电话录音功能
/*** Created by Easzz on 2015/12/6.*/public class RecorderService extendsService {private MediaRecorder recorder; //录音的一个实例OverridepublicIBinder onBind(Intent intent) {return null;}Overridepublic voidonCreate() {super.onCreate();//获得电话管理器Tele…...

「Redis」04 发布和订阅
笔记整理自【尚硅谷】Redis 6 入门到精通 超详细 教程 Redis——发布和订阅 1. 什么是发布和订阅 Redis 发布订阅( pub/sub )是一种消息通信模式:发送者( pub )发送消息,订阅者( sub …...

算法:两个经纬度之间的距离
由于需要找以一个坐标点最近的一个气象站坐标,读取它对应的气象数据。 #region 两个经纬度之间的距离//地球半径,单位米private const double EARTH_RADIUS 6378137;/// <summary>/// 计算两点位置的距离,返回两点的距离,单…...
远程教育实施方案交流之(一)——课件制作与课程录制篇
笔者结合现阶段最新技术和项目开展的各种影响因素,并综合考虑远程教育项目实施的成本控制、可行性分析、生产效率、实施商业模式,实施效果等方面将远程教育项目实施方案分成,1、课件制作与课程录制方案篇;2、远程教育平台建设及采…...
CCF201812
这次的CCF没打,这次CCF第4题不是送分题么,裸的最小生成树的最大权边。 随手写了一下,晚上回来补一个,JAVA版的。 2018-12-1小明上学 问题描述 试题编号:201812-1试题名称:小明上学时间限制:…...

react和vue配置本地代理
在react中配置开发环境下的本地代理相对比较简单,直接在package.json文件中修改即可。 此处以本地服务器, 端口为5000为例 "proxy": "http://localhost:5000"在项目目录的src /下新建setupProxy.js文件,然后写入如下代码…...

天线知识点总结
天线:教材:马汉炎《天线原理》 克劳斯《天线》 后几章脉络可看章节习题,有很多梳理性问题 内容很简单,脉络很清晰。从电偶极子和次偶极子的辐射入手,后面所有的线天线都可看做电偶极子的阵列,方向图都可看做电偶极子方向图乘阵列…...

scala的特征
1.java和scala可以无缝链接,都运行在JVM上 2.类型推断,即可以自动推测类型,不用指定类型 3.并发和分布式(Actor,类似Java中的多线程Thread) 4.特质trait,特征(类似于java中的interfaces和abstract结合) 5.模…...

Vue3+nodejs全栈项目(资金管理系统)——后端篇(二)用户模块
文章目录用户模块的增删改查新增创建user_info表初始化路由模块路由模块处理函数(添加)测试查询路由模块处理函数(查询)测试编辑(根据id)路由模块处理函数(编辑/更新)测试删除(根据id)路由模块处理函数测试…...

链表必刷题:快慢双指针,链表反转,找中点模版·····
234. 回文链表 很有代表性!包含了链表遍历,快慢指针找中点模版,链表数据比对,链表反转!非常具有代表性 class Solution {public boolean isPalindrome(ListNode head) {if(head null || head.next null) return true…...

Windows上同时配置GitHub,Gitlab,Gitee(码云)三种开发环境
Windows上同时配置GitHub,Gitlab,Gitee(码云)三种开发环境一、介绍1、Git2、GitHub的概念3、Gitlab的概念4、Gitee的概念二、安装Git环境1、下载2、安装3、验证三、配置1、单独配置①本地生成 ssh key②添加新的shh key2、同时配置…...

java计算机毕业设计疫情期间高校师生外出请假管理系统录屏源程序+mysql+系统+lw文档+远程调试
java计算机毕业设计疫情期间高校师生外出请假管理系统录屏源程序mysql系统lw文档远程调试 java计算机毕业设计疫情期间高校师生外出请假管理系统录屏源程序mysql系统lw文档远程调试本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发…...

Java 实例-打印图形
Java 实例 – 打印菱形 输出指定行数的菱形。 package com.example.yan.java打印图形;public class Main {public static void main(String[] args) {print(8); // 输出 8 行的菱形}public static void print(int size) {if (size % 2 0) {size; // 计算菱形大小}for (int i…...

华为机试 - 模拟商场优惠打折
目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 模拟商场优惠打折,有三种优惠券可以用,满减券、打折券和无门槛券。 满减券:满100减10,满200减20,满300减30,满400减40ÿ…...

小米路由器3 保姆级救砖回忆录及实操技巧演示
写在救砖之前 路由器TTL救砖,好多网友反映看到信息,无法选择,眼睁睁的看启动菜单滚过去,一次又一次。 详细的视频教程我已经上传到西瓜、今日头条和哔哩哔哩。估计就这两个网站能接受几百兆的视频 视频地址如下: 就…...

知识点滴 - 如何写项目总结
项目结束了,要写项目总结(Project Summary)。或者在项目开发中,也需要写项目总结。 如果你使用PPT来写项目总结,那就要每一页PPT都要包含某类内容,可以设定个大纲来写。 在项目总结中,你可能需要…...

JavaScript数组的常用方法
数组基本操作可以归纳为增,删,改和查,不过需要留意的是哪些方法会对原数组产生影响,哪些方法不会。 接下来对数组的常用操作方法归纳总结一下: 一.增 前三种是会对原数组产生影响的增添方法,最后一种不会对原数组产…...

phoenix os 卡 android,国人开发的多平台系统Phoenix OS,秒开应用,卡片式后台
Phoenix OS系统团队成员来自原世界之窗、奇虎360、阿里巴巴。Phoenix OS系统是直接运行在PC机上的安卓系统(不是模拟器),更底层,更流畅。桌面与Windows 7的风格基本相同,支持全屏切换,这款操作系统使用起来挺相似的,而…...

QQ音乐Android wear,小米手表我觉得现阶段就是一个半成品,目前无法完全适配iOS,只能安装wear OS连接手表之后设置一下表盘通知等最基本的功能,看了介绍说过段时间才会有iOS版的小米穿
小米手表我觉得现阶段就是一个半成品,目前无法完全适配iOS,只能安装wear OS连接手表之后设置一下表盘通知等最基本的功能,看了介绍说过段时间才会有iOS版的小米穿戴,真是赶鸭子上架啊。以下是我体验后几点要说的:1.因为…...

android os v2.0,免除升级烦恼 Android OS v2.2给力手机推荐
在众多的安卓系统手机当中,能搭载最成熟的系统版本是用户比较关心的问题,这关系到系统的成熟程度和用户在使用当中的细节感受。安卓系统在上市之初就一直在不断完善和更新系统版本,也导致了市场上安卓系统各版本手机混乱不堪的局面。今天笔者…...

Android Studio第六课:模仿QQ登录跳转
Android Studio第六课:模仿QQ登录跳转导包,添加依赖登陆界面欢迎界面主界面导包,添加依赖 找到build.gradle,后缀是自己建的项目名 // 基础依赖包,必须要依赖implementation com.geyifeng.immersionbar:immersionbar:3.2.2 // kot…...

Android 11.0 os定制专栏系列解读
一.前言 在从事os定制化开发的这几年里,从7.1到11.0一路走过来,有心酸有收获,对于frameworks的相关视频资料也不多,这部分还是有相当难度的,不像app应用开发,资料这么全,本专栏只是提供给转型o…...

Android ExpandableListView—仿QQ可折叠列表
ExpandableListView简介使用简介 ExpandableListView是一个可以折叠的列表、继承自ListView,相信大家对ListView也是非常熟悉的了,ExpandableListView的使用方法跟ListView差不多,但也要比ListView繁琐,如果ListView没入门的建议…...

android9原生体验,小米MIX 安卓9.0 原生体验 LineageOS16.0 ROOT
介绍ROM为第三方编译安卓9.0 LineageOS16.0 ,基本功能正常,如有其他bug,理性对待使用Magisk ROOT授权刷机完成后请务必到设置中手动设置当前系统时间和时区去网络图标上面的感叹号和x号方法:打开CaptiveMgr软件--自动弹出授权弹窗…...

操作系统(OS)引论
一、OS的概念 定义:OS是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,他是计算机系统中最基本的系统软件。 OS在计算机体系的层次结构的位置如…...

Android:QQ空间分享
QZoneShareActivity.java: package com.cz.hello.activity;import java.util.ArrayList;import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widg...

android开发qq分享图片,QQ分享官方第三方接入(分享纯图片及截取view的bitmap图)...
常见功能Mark:QQ分享官方第三方接入。一、创建并配置工程 参考腾讯官方文档:点击打开链接简单抄过来一些:1、创建一个工程,并把open-sdk.jar文件和mta_sdk_x.x.x.jar文件拷贝到libs(或lib)目录下2. 配置AndroidManifest在应用的An…...

Android10.0 os定制化系列讲解导读
一.前言 本专栏主要是作者本人在10.0 frameworks定制化实战功能系列的解读,在从事几年的frameworks定制化功能的经验的积累,开发过平板,广告机,会议机,车机等一系列系统上层定制的功能性开发,写博客的目的…...

android qq数据存储,获取手机QQ存储路径下的文件
package com.example.myfile;import androidx.annotation.RequiresApi;import androidx.appcompat.app.AppCompatActivity;import androidx.recyclerview.widget.LinearLayoutManager;import androidx.recyclerview.widget.RecyclerView;import android.Manifest;import andro...

android qq pad,腾讯QQ for Pad Android版本体验
您可能感兴趣的话题:腾讯QQ核心提示:整体感觉,这个Android平板QQ,很像是一个类似点心系统的桌面OS,除了基本的聊天功能之外,还结合了腾讯的各种业务,包括web网页的和一些应用程序级别的应用&…...

安卓7.0报错android.os.FileUriExposedException
最近在开发过程中遇到了这样一个错误,android.os.FileUriExposedException: file:///storage/emulated/0/xxx/xxx.doc exposed beyond app through Intent.getData() 出现这个问题是在使用Intent附带uri打开sd卡下的doc文件,而在Android 7.0后࿰…...

Metabase学习教程:系统管理-3
保持条理化 当用户、问题和仪表盘的数量不可避免地增加时,如何保持分析的组织性。 如果您想保持竞争力,您需要让组织中的人员访问他们需要的数据,以便做出更好的决策。然而,这种数据自主化的代价是不可避免的大量分析——这会使…...

android qq模拟点击,android中如何模拟QQ登录状态
程序如下:import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Ad…...

android分享图片到qq,Android实现截图分享qq,微信
Android实现截图分享qq,微信立即下载金额: 3 元支付方式:友情提醒:源码购买后不支持退换货立即支付发布时间:2018-05-23概述android上封装工具类,一行实现截屏分享到qq等第三方功能详细###前言现在很多应用都有截图分享…...

deepin15.11护眼模式
deepin自带的护眼不好用。 还是redshift好用。 直接 sudo apt-get update更新下, 然后直接敲入redshift就行了。deepin自己带了redshift。...

AprilTags论文翻译
AprilTag三篇论文的简单翻译.2011,2016,2019GitHub - AprilRobotics/apriltag: AprilTag is a visual fiducial system popular for robotics research. AprilTag:一个健壮而灵活的视觉基准系统 摘要-虽然使用自然出现的特征是机器感知的重点,但人工特征在创建可控…...

如何通过Java实现485通信
1、整体架构的选择 首先根据需求,我这边使用的是springbootnetty的架构,使用了一个串口转网口的转换模块。为什么这么使用?部署的时候使用的是Linux的系统,在Linux下安装驱动比较麻烦,所以网口可以节省大量的服务器配…...

学电脑先学什么
要学电脑,首先应该学习操作,包括熟练使用键盘,使用鼠标,能基本使用操作系统(包括使用操作总统,安装应用软件),然后在学习打字(专业的打字非学习五笔不可)&…...
零基础可以学计算机编程吗,计算机编程好学吗,零基础小白可以吗,入门应该先学什么?...
计算机编程技术好学吗,零基础小白可以入门吗,入门应该先学什么?其实想要进入编程行业,入门最为关键,经常能听到很多人说,想学习编程其实不难,入门更为简单,只要你对他感兴趣就能学&a…...

计算机专业找工作学什么好,学电脑学什么专业好找工作
计算机在互联网时代是主要的工作工具,大家都知道学和计算机相关的技术能够让我们更好地实现就业,但是却不知道学电脑学什么专业好找工作。如今,市面上比较热门的岗位,要数电脑cg设计了。所谓cg设计,是指借助计算机软件…...

学计算机还有绘画基础,学电脑绘画应该从什么学起
电脑的出现让我们的工作越来越便捷,尤其是在设计行业之中,在早先,设计师的创作都是通过纸张来完成,可是这种方式不仅不易修改,还不容易保存,经常会出现损坏和发霉。直到电脑的出现,设计师可以直…...

0基础学java可行吗_零基础可以学习JAVA吗?
肯定是可以学的,每一个人做每一件事都是从0基础开始的,他们并不是生下来就会Java,会编程,都是通过后天的努力说得到的技能你只需要找对方法,找对带你的人,你就可以学好学习Java的方式有这几种:3…...

利用scrapy爬取东方资讯的新闻
之前学习用的,爬取东方资讯新闻列表的代码 ArticlelistItem文件中的字段可根据自己的需要改变 # -*- coding: utf-8 -*- import scrapy import json import time import pymysql from articlelist.items import ArticlelistItemclass EastdaySpider(scrapy.Spider)…...

[附源码]计算机毕业设计springboot作业管理系统
项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…...

国产蓝牙耳机排行,500元蓝牙耳机性价比之王
蓝牙耳机可以说是这两年来最受用户追捧的数码产品之一,其之所以能快速受到大众喜爱,除了便携和手机耳机接口的迭代外,还有技术的成熟,音质方面与有线耳机的差距越越来越小了,尤其是我们的国产品牌,在音质表…...

气传导耳机什么牌子的好,最好的气传导耳机排行榜
或许我们的日常生活中充满了噪声,例如马路、地铁还有公交上,嘈杂的声音会影响我们的心情,同时还会损伤我们的耳朵,在嘈杂的环境中,想听歌想煲剧了怎么办,又不想沉浸在自己的世界里,就可以使用气…...

python matplotlib打开相机
如何通过按键保存图片呢??? import cv2 import matplotlib.pyplot as pltcapture cv2.VideoCapture(0) fig plt.figure() plt.ion()if capture is not None:while (True):# 获取一帧ret, frame capture.read()if frame is not None:# ope…...

Android WebView中打开相机拍照和选择相册
一般在项目中与js交互,可能会遇到上传文件图片等操作,避免不了一些坑,下面简单说一下,Android 在不同版本中webView调用相机,选择相册的方法是不一样的,3.0以下的调用 public void openFileChooser(ValueCa…...
Halcon联合VS2010打开相机并显示
在开始之前需要安装好Halcon 12和VS2010,具体的话VS2010是免费的可以直接在微软官方下载,Halcon12这个可以参考Halcon学习网(http://www.ihalcon.com/read-7605-1.html)一、打开Halcon,打开助手,获取打开相…...

Android7.1 关闭双击电源键打开照相机功能
diff --git a/frameworks/base/core/res/res/values/config.xml b/frameworks/base/core/res/res/values/config.xml index 2a61967..aab832d 100755 --- a/frameworks/base/core/res/res/values/config.xml b/frameworks/base/core/res/res/values/config.xml -2427,7 2427...

Android 多进程同时打开相机
转载:多进程打开相机 多进程打开相机 只要满足一定的条件是可以多进程打开相机 1、CameraService打开相机的入口 Status CameraService::connectDevice(const sp<hardware::camera2::ICameraDeviceCallbacks>& cameraCb,const String16& cameraId,…...

打开相机
using System.Collections; using System.Collections.Generic; using UnityEngine;public class cameraView : MonoBehaviour {public GameObject cameraViewPlan;public static Texture2D viewTexture;public static WebCamTexture viewTextureCamera;// Use this for initi...
OpenCV学习笔记(六)—— OpenCV for Android打开相机
在之前的篇章中,我们完成了Android平台开发环境的配置,也找到了剔除OpenCV Manager API的办法,那么接下来我们开始从零开始,完成一个个人的程序,实现功能如下: 1.识别指定的图片,并用彩色框绘制…...

运维面试精选:3、Docker面试题
文章目录1、Docker 中cmd add copy区别?2、请说一说Docker中Cgroups,namespace,unionFS?3、容器的rootfs层?4、Docker的网络模式有哪些?5、Docker 存储引擎6、docker和kvm区别1、Docker 中cmd add copy区别…...

MySQL运维基础面试问答题(42题)
面试题001:请解释关系型数据库概念及主要特点? 关系型数据库模型是把复杂的数据结构归结为简单的二元关系,对数据的操作都是建立在一个或多个关系表格上,最大的特点就是二维的表格,通过SQL结构查询语句存取数据&#…...

运维面试必问的负载均衡高频面试题(2021年最新版)
前言 网上的运维基础面试题文章有非常多,在我的博客中也有一些是这些年运维人员面试的面试题,但是大部分都比较老了。之前一些经典的面试题我已经整理到专栏《运维面试宝典》里,这个专栏里的面试技巧可以说永远不会过时,而且我会每隔一段时间进行补充和优化。 从一开始开…...

[附源码]JAVA毕业设计交通事故档案管理系统(系统+LW)
[附源码]JAVA毕业设计交通事故档案管理系统(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目…...

MIME type (‘text/html‘) is not a supported stylesheet MIME type, and strict MIME checking is enabled
项目场景: 在index.html中引入一个css文件 问题描述 在index.html中引入一个css文件,报如下错误: Refused to apply style from http://localhost:8080/theme/index.css because its MIME type (text/html) is not a supported stylesheet…...

常见mimeType大全
常见mimeType,来源aliyunoss SDK $mimeTypes [xlsx > application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,xltx > application/vnd.openxmlformats-officedocument.spreadsheetml.template,potx > application/vnd.openxmlformats-offi…...

IOS开发之——上传-获取文件的MIMEType(03)
一 概述 常用文件的MIMEType如何通过一次请求获取文件的MIMEType 二 常用文件的MIMEType 2.1 图片 类型文件拓展名MIMEType图片pngimage/png图片bmp\dibimage/bmp图片jpe\jpeg\jpgimage/jpeg图片gifimage/gif 2.2 多媒体 类型文件拓展名MIMEType多媒体mp3audio/mpeg多媒体m…...

异常:MIME type may not contain reserved characters
前言 在微服务技术栈中,我们会经常Fegin调用,Fegin确实简化了http调用细节,让我们可以像调用内部方法一样调用外部接口。但是Fegin调用也有很多问题,这里来和大家一起看看MIME type may not contain reserved characters异常。 …...

解决:PHP 阿里云OSS访问图片地址默认下载而不是在线预览
修改文件--保存后再上传图片就可以在线预览了 将阿里云图片属性改为"image/jpg" 也可直接替换下方文件,已经是修改后的了,新上传的图片则不会出现不可在线预览了 image/jpg 文件地址: vendor/aliyuncs/oss-sdk-php/src/OSS/Core/MimeTypes.php <?phpn…...

常用的MIMETYPE列表
text/plain(纯文本) text/html(HTML文档) text/javascript(js代码) application/xhtmlxml(XHTML文档) image/gif(GIF图像) image/jpeg(JPEG图像&a…...

MIME type 问题的解决
出现背景:在angular项目最后的打包部署阶段,打包成一个dist静态文件夹,其内放置的是一些静态文件,然后在编辑器中直接运行index.html,出现以下错误:Refused to execute script from URL because its MIME t…...

Django提示mimetype无法识别错误
Django1.7把mimetype改成了content_type。请使用content_type。...

tomcat中mime type配置说明
在一些场景下 tomcat下的一些文件 在浏览器中访问的时候 浏览器会直接打开这个文件内容 而不是下载该文件 反之亦然. 这时候需要设置tomcat下的配置打开tomcat目录下的conf文件夹下的web.xml文件(切记不是工程目录下的web.xml)。例如:<mime-mapping> …...

Android获取文件的mimeType的封装
概述 MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名࿰…...

iOS开发网络篇 一一 获取文件MIMEType的方式
一共有三种方式: // 获取MIMEType//1. 发送请求,可以在响应头(内部有MIMEType)//2. 百度 MIMEType//3. 调用C语言API//4. application/octet-stream 任意的二进制数据类型代码如下:// Created by 朝阳 on 2017/12/12. // Copyright © 2017年 sunny. All rights reserved…...

常见文件对应的MIMEType类型
常见文件对应的MIMEType类型 序号文件格式对应MIMEType类型1.pngimage/png2.jpegimage/jpeg3.jpgimage/jpeg4.gifimage/gif5.webpimage/webp6.xlsapplication/vnd.ms-excel7.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet8.docapplication/msword9.…...

java的mime类型_常用的mimeType,以及java获取mime类型
将文件系统上的文件获取了这些mimeTypegif : image/gifbmp : image/bmpico : image/x-icojpeg : image/jpegjpg : image/jpegpng : image/pngzip : application/ziprar : application/x-rarjsp : text/htmlpdf : application/pdfpng : image/pngjpg : image/jpegmp4 : video/mp…...

java 设置mime type_将Mimetype添加到MimetypesFileTypeMap - java
我在将Mimetypes添加到MimetypesFileTypeMap时遇到问题。我已经尝试添加META-INF / mime.types文件,就像Documentation所说的那样。但MimetypesFileTypeMap似乎没有读取它。我想念什么吗?这是一个Spring / Maven Web项目。任何帮助,将不胜感激…...

常用MIME Type 配置
Video TypeExtensionMIME TypeMPEG-4.mp4video/mp4Ogg Video.ogvvideo/oggFlash Video.flvvideo/x-flvA/V Interleave.avivideo/x-msvideoMicrosoft Windows Media.wmvvideo/x-ms-wmvRealMedia Variable Bitrate.rmvbapplication/vnd.rn-realmedia-vbrreine Textdateien.txtte...

HTML MIME Type
MIME type的缩写为(Multipurpose Internet Mail Extensions)代表互联网媒体类型(Internet media type),MIME使用一个简单的字符串组成,最初是为了标识邮件Email附件的类型,在html文件中可以使用content-type属性表示,描述了文件类…...

Android MIME TYPE的基本用法
MIME_TYPE external/mime-support/mime.types frameworks/base/mime/java-res/android.mime.types MIME类型 MIME type的缩写为(Multipurpose Internet Mail Extensions)代表互联网媒体类型(Internet media type),MIME使用一个简单的字符串 组成,最初…...

Android MIME类型
一、MIME TYPE描述 多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。 内容类型(…...

史上最全的mime-type大全
原文地址:http://blog.haoji.me/mime-type.html?fromxa 什么是mime-type 简单来讲,它的作用就是服务器告诉浏览器你这个内容到底是个什么东东,是一张网页?还是一张图片?还是一个视频?浏览器只有知道了你…...

生物化学 药物设计与研发笔记:变构(Allostery)药物设计
视频连接:创新药物设计与研发 总结: 本次的主题为变构(Allostery)药物设计。 对于抗糖尿病靶标PPARγPPAR\gammaPPARγ的激动剂RSG具有骨密度下降等不良反应,在同时给药 PPARγPPAR\gammaPPARγ的变构激动剂BVC发现…...

【国际】日本考虑发行J-Coin,在2020年东京奥运会举办前取代现金交易
点击上方“蓝色字”可关注我们!暴走时评:日前,日本再次成为最大的比特币交易市场,占全球比特币交易市场份额达到了50.75%。同时,亦有消息称日本银行正考虑创建数字货币J-Coin,以淘汰现金这种支付…...

日语三级真题!
問題ⅰ __の ことばは どう 読みますか。1,2,3,4から いちばんいい ものを 一つ えらびなさい。 問1 この 県の 産業に ついて 説明して …...

3D模型在线查看利器【多种格式】
BimAnt 3DViewer网站可以 打开多种 3D 文件格式并在你的浏览器中可视化展示3D模型,支持 obj、3ds、stl、ply、gltf、glb、off、 3dm、fbx 等等。 1、支持的3D模型格式 BimAnt 3DViewer网站支持多种文件格式的导入和导出。 如果文件格式有文本和二进制版本&#x…...

寻找适合程序员的笔记软件
做为一个程序员,有两个东西是我们必需的.一个是搜索,另一个则是记录. 当我们遇到不会或解决不了的困难点时,我们会第一时间使用搜索(如Google)来寻找解决方案,而当我们积累与在技术上有任何心得时,我们会记录它. 因而,寻找一个合适的笔记软件,对程序员非常重要. 一) 程序员…...
年少成名的我并没有放弃自己,谁敢说她\他文章比我写的好?!,不服来战!...
大家镇定一下情绪,文章要开始了。 不择手段是人杰,不改初衷是英雄! 年前读了老罗的这本书—— 《一个理想主义者的奋斗,The Adventures of an Idealist》回想起了我与新东方的故事 我与新东方的故事,大砥开始于高二&a…...

《流浪地球》虽好,却存在一个不可回避的硬伤!
春节以来,最火的不是开市大吉的猪年股市,而是曾经的战狼英雄吴京参与投资拍摄的首部科幻大片《流浪地球》。 数字哥是一个从小看《奥秘》、《飞碟探索》和《科幻世界》长大的骨灰级科幻迷,同时还该片原著兼监制刘慈欣的脑残粉,大…...

GitHub访问问题与FastGithub下载及使用(详细篇)
前言 📜 “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等,IT技术干货、学习经验、面试资料、刷题记录,以及遇到的问题和解决方案,记录自己成长的点滴 目录 前言 FastGithub的介绍 FastGithub的下载 FastGithub的安装及…...

ETCD单节点故障应急恢复
系列文章目录 ETCD容器化搭建集群 文章目录前言一、总体恢复流程二、详细恢复指导2.1 环境信息2.2 集群删除异常节点2.2 删除异常节点数据2.3 集群重新添加节点2.4 启动节点2.4 等待集群数据完成同步并恢复总结前言 生产环境中,经常遇到etcd集群出现单节点故障或者…...

ETCD容器化搭建集群
系列文章目录 历史文章1 文章目录前言一、环境信息二、搭建步骤1.准备前置条件1.1 安装Docker1.2 拉取镜像2.安装Etcd2.1 新建目录2.2 编辑脚本2.3 执行部署三、结果验证在这里插入图片描述总结参考前言 本文介绍使用docker搭建一个etcd集群,附带对应的搭建脚本。…...

Es常用操作和经典case整理
文章目录1 集群操作1.1 获取集群状态1.2 获取异常的索引2 索引操作2.1 查看索引,查看状态为yellow2.2 查看索引,按照索引名称排序2.3 查看索引,按照文档数量排序2.4 查看索引,按照存储大小排序2.5 查看索引,按照内存大…...

ETCD集群故障应急恢复-本地数据可用
系列文章目录 文章目录前言一、总体恢复流程二、集群故障恢复2.1 环境信息2.2 启动第一个节点2.2 添加第二个节点2.3 添加第三个节点2.4 调整第1个节点的启动参数总结前言 如果整个etcd集群的所有节点宕机,并且通过常规节点重启,无法完成选主࿰…...

ETCD集群故障应急恢复-从snapshot恢复
系列文章目录 文章目录前言一、总体恢复流程二、集群故障恢复2.1 环境信息2.2 选择一个节点恢复备份数据2.2 添加第二个节点2.3 添加第三个节点2.4 调整第1个节点的启动参数总结前言 如果整个etcd集群的所有节点宕机,并且通过常规节点重启,无法完成选主…...

Linux时间延迟平滑对时方案的分析-Ntp和Chrony的不同表现
系列文章目录 文章目录系列文章目录前言一、环境信息二、ntpd模式2.1 版本信息2.2 配置ntpd对时源2.2.1 配置ntpd服务配置,启动ntpd服务2.3.2 查看对时情况2.3 配置ntpd客户端2.3.1 配置ntpd服务配置,启动ntpd服务2.3.2 查看对时情况2.4 关键场景2.4.1 场…...

ntp的server的上游跳变对ntp的server及client的影响
文章目录1.NTPSERVER 带-X参数1.1.客户端1.2.服务端1.3.跳变1.3.1.服务端1.3.2.客户端1.3.3总结2.NTPSERVER 不带-X参数2.1.客户端2.2.服务端2.3.跳变2.3.1服务端2.3.2.客户端2.3.3.总结3.总结探讨ntp不同参数针对ntp跳变时的时间反应。 1.NTPSERVER 带-X参数 1.1.客户端 正…...

君子九思
君有九思:视思明,听思聪,色思温,貌思恭,言思忠,事思敬,疑思问,忿思难,见得思义。 君子有九件事要反省:看的时候,要反省是否看清楚了;听…...

数字电路设计:Logicly 最新版Crack
Logicly有效地教授逻辑门 数字电路 — 使用 Logicly 现代直观的用户界面支持拖放、复制/粘贴、缩放等功能,可快速轻松地设计电路。 通过暂停模拟并在您逐步推进时观察信号传播来控制调试。 不用担心学生计算机上的多个平台。在 Windows 和 macOS 上安装 创建引人入…...

遇到问题--python--pandas--dataframe进行groupby之后导出数据to_excel内容为空
情况 dataframe需要使用groupby 进行数据统计处理 得到的df数据如下: 但是df导出数据to_excel内容为空 原因 dataframe使用groupby后是带着分组信息的,并不是dataframe平铺的格式,所以直接导出会有问题。 解决方案 把带有分组信息的gro…...

Pandas的merge和groupby用法
1.merge用来连接两个DataFrame对象,参数on选择基于哪个列进行连接,how选择内连接,左连接还是全连接的方式。merge操作类似于SQL中的join操作。[python] view plaincopyimport pandas as pd df1 pd.DataFrame({key:[b,b,a,c,a,b],data1:rang…...

数据库考点_11
GROUP BY 作用: 根据给定数据列的每个成员,对查询结果进行分组统计,关于这句话,有两个解释: 满足SELECT字句中的列名必须为分组列或者列函数. 也就是说: 要么是group by 中用到了列,要么就是带有max这类的列函数的列. 注意: 上面的条件只针对同一张表成立,如果用到了多张表,…...

Python property()函数:定义属性
我们一直在用“类对象.属性”的方式访问类中定义的属性,其实这种做法是欠妥的,因为它破坏了类的封装原则。正常情况下,类包含的属性应该是隐藏的,只允许通过类提供的方法来间接实现对类属性的访问和操作。因此,在不破坏…...

rails 与 sql goup_by
rails Sku.joins(:site_skus).where("site_skus.site_id": [11,12,13]).group("skus.id") sql SELECT "skus".* FROM "skus" INNER JOIN "site_skus" ON "site_skus"."sku_id" "skus"....

Markdown特殊字符转义
Markdown特殊字符转义 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 目录 文章目录Markdown特殊字符转义[toc]前言1.反斜杠忽略Markdown格式(推荐)2.HTML 标签3.Html ASCII转义环境: Markdown 前言 Markdown …...

mysql特殊字段名称_Mysql必读MySQL创建带特殊字符的数据库名称方法示例
《MysqL必读MysqL创建带特殊字符的数据库名称方法示例》要点:本文介绍了MysqL必读MysqL创建带特殊字符的数据库名称方法示例,希望对您有用。如果有疑问,可以联系我们。文章抓哟讲解了关于如何实现在MysqL中创建带有特殊字符的数据库名称,这里…...

OpenShift 4 - 在单节点 OpenShift 上部署 ODF 存储软件
《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 的 OpenShift Local 环境中验证 文章目录什么是 ODF LVM ?为 OpenShift Local 增加额外存储设备安装并配置 ODF LVM Operator使用 ODF 创建 PVC/PV 验证什么是 ODF LVM &…...

java 特殊字符处理
在一些系统中经常可能会用到Cookie,但是Cookie的值是不能有特殊字符的,我也是在进过这个坑之后才想起来解决这个问题。另外,在sql中如果插入特殊字符也可能会阻碍sql正常执行,所以特殊字符处理还是有必要的。下面开始贴代码。 【…...

java 过滤url特殊字符,java处理url中的特殊字符
java处理url中的特殊字符(如&,%...)URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志。一个完整的URL包括如下内容:1. 应用协议名称,包括http,ftp,file等标志2. 资源定位&#x…...

LaTeX的特殊字符
代码: \documentclass{article} \usepackage{ctex} %XeLaTeX标准的宏包 \usepackage{xltxtra} \usepackage{texnames} \usepackage{mflogo}\begin{document}\section{空白字符}% 英文多个空格,当作一个空格处理We always knew our daughter Kendall …...

特殊字符中英文对照 (标点符号的英文)
整理了一下标点符号的英文表示,主要是计算机常用的类型. 来源是wikipedia! apostrophe ( ’ ) brackets ( ( ) ), ( [ ] ), ( { } ), ( < > ) round brackets , open brackets or parentheses : ( ) square brackets , closed brackets or box bracket…...

详解 物理学四大神兽
详解物理学四大神兽视频!...

pandas学习-task2
1. loc方法、iloc方法、[]操作符 一般而言,最常用的索引方法就是这三类 iloc表示位置索引(i表示index) loc表示标签索引 []也具有很大的便利性 (a)loc方法 trick one: 所有在loc中使用的切片全部包含右端点的&#x…...

Pandas学习 - 索引
写在前面 今天这部分我们要学习一下索引的操作。申明一下这个不是我自己编写的噢,是参加了Datawhale的组队学习,其中的成员GYH大神编写的joyful-pandas,可以取github上找到内容!(PS发现大神是同校的小学弟哈哈哈&…...

BoltDB学习笔记
文章目录一、boltdb简介1、boltdb是什么2、为什么分析boltdb3、boltdb对比其它数据库4、boltdb的用法入门5、boltdb性能提升二、BoltDB的数据结构三、BoltDB中的B树和Bucket1、Bucket结构2、Cursor结构3、Node结构4、K/V操作四、BoltDB事务1、事务原理2、事务源码Tx结构体Begin…...

1 0.99999的悖论_物理学四大神兽:你能追上乌龟吗?无穷大到底是多大?(1)...
“ 无限之上是有限,有限之上是无限”想必大家都听说过古代的四大神兽,并且貌似它们都是正义的伙伴。但是,物理学的“四大神兽”相比而言就没有那么神圣感,也不那么为人所知。但是,如果让青龙白虎朱雀玄武和物理学“四大…...

物理学四大神兽,除了“薛定谔的猫”, 你还知道哪几个?
来源 : 逗逼的500T硬盘物理学是一门研究物质运动最一般规律和物质基本结构的学科。分为纯物理学和多学科物理学,其中的纯物理学又分为:1.经典力学;2.热力学和统计力学;3.电磁学;4.相对论;5.量子…...

网站建设-通过链接策略建立排名:
网站建设-通过链接策略建立排名: 网站建设只是您想要成功进行在线投资的开始。正如您在真正的实体世界中建立业务一样,在线建立您的利基需要卓越的技能,持续的监控和分析,以及不断调整以适应搜索引擎以及不断变化的趋势。网站建设…...

网站建设的七大好处及优势
中国互联网发展到现在已经20年了,网站大范围普及,早已不是刚开始那种单纯的讲一个简单的页面放到网上展示的形式了。所以我要讲的网站建设也不是单单的将一个网站建设出来就可。很多人都在做网站建设,同样的:一部分企业在做网站建…...

访问学者申请关于免签和返签
签证的免签就是拿着护照去另一个国家,不用签证。中国的公务护照和外交护照在许多国家享受免签待遇。而因私护照到目前为止,除了在个别国家享受转机免签(一般为不出机场或出机场但不超过72小时)外,还没有任何国家给予免签。知识人网老师介绍全…...

爱了爱了,这是什么神仙级Apache Dubbo实战资料,清晰!齐全!已跪!
都2026年了 还没有用过Dubbo? Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术,面试的时候是不是经常不能让面试官满意?无论你是否用过,你都必须…...

python exe程序注册为window系统服务
1、使用pyinstaller将py打包成exe 1、安装 pip install pyinstaller2、打包成exe可执行文件 pyinstaller -F packTest.py #packTest.py为待打包的py文件打包成功后会在同级目录中生成两个文件夹和一个文件,分别为dist和build文件夹,以及一份与.py文件同…...

二分网络上的链路预测实验 附完整代码
实验内容 采用二分网络模型,对 ml-1m 文件夹中的“用户---电影”打分数据进行建模,考虑将用户信息、电影详细信息、以及打分分值作为该网络上的边、点的权重;根据网络结构特征给出节点相似性度量指标;基于相似性在二分网络上进行链路预测;采用交叉验证的方法验证预测结果;…...

在字节跳动工作是怎样的?
链接:https://www.zhihu.com/question/28881353/answer/1912209855编辑:深度学习与计算机视觉声明:仅做学术分享,侵删作者:爱喝可乐的喵https://www.zhihu.com/question/28881353/answer/128694674工作久了之后&#x…...
在字节跳动工作是什么样的体验?
链接:https://www.zhihu.com/question/28881353/answer/1912209855编辑:深度学习与计算机视觉声明:仅做学术分享,侵删作者:爱喝可乐的喵https://www.zhihu.com/question/28881353/answer/128694674工作久了之后&#x…...

成功的必要条件,自我管理
无论在社会生活中,还是工作上,自我管理,都是一个特别重要而存在的因素。自我管理,指利用个人内在力量改变行为的策略,普遍运用在减少不良行为与增加好的行为的出现,也就是懂得自我约束和自律。 俗语曾言&a…...

MySQL详解(二)——基础 2.0
5. 完整性约束 完整性约束是为了表的数据的正确性!如果数据不正确,那么一开始就不能添加到表中。 5.1 主键 当某一列添加了主键约束后,那么这一列的数据就不能重复出现。这样每行记录中其主键列的值就是这一行的唯一标识。例如学生的学号可…...

打印出一个数的每一位
打印出一个数的每一位 #include <iostream> using namespace std;int main( ) {int a 42;unsigned p 1;//此处注意,我定义为无符号int是为了在后面右移的时候使用逻辑右移,符号位保持0p p<<31;for(int i 0;i<32;i){if(p&a)cout&l…...

linux 函数中打印调用栈
一、内核中 To print the stack contents and a backtrace to the kernel log, use the #include <linux/kernel.h>dump_stack(); 二、应用 ref: linux device driver - How to include C backtrace in a kernel module code? - Stack Overflow linux内…...

c语言printf%%,c语言printf实现同一位置打印输出的实例分享
—-想了解c语言printf实现同一位置打印输出的实例分享的全部内容且更多的C语言教程关注控制台同一位置打印输出,例如:进度1%->100%在同一位置显示。刚学习c语言的时候一直想做起来,可惜查询好多资料不行。时隔6年多,空闲之余又…...

java 四边形_Java 实例 – 打印平行四边形
打印圆形:public class Circle{public static void main(String[] args) {circle(5); // 输出半径为5的圆}public static void circle(int r) {for (int y 0; y < 2 * r; y 2) {int x (int) Math.round(r - Math.sqrt(2 * r * y - y * y));int len 2 * (r - x);// 圆左的…...

linux eof打印列表,Linux:结合cat和EOF输出到文本文件
EOF:即“end of file”的简写Linux实践中,往往需要将shell脚本中的多行内容,输出到一个文本文件中。例如输出一段内容,作为一个新的脚本。举例如下:cat > test.sh <this is a testthis is another testthis is f…...

js动态加载table,打印table里的内容以及解决打印后的问题
<body><div><div style"text-align: center;margin: 10px">姓名:<input type"text" id"pt_search_name" name"pt_search_name" style"width: 150px;height: 30px;border: 1px;" placeholde…...

字集打印0.0
#include<iostream> #include<cstring> using namespace std; const int maxn 100; int Num[maxn]; int tmp[maxn]; void Subset_1(int n,int *A,int cur) { ///可以按照排列的类似写法撸出随意集合的字集0.0 for(int i 0; i < cur; i) cout << A[i] …...

寒假宅喵java学习
1.25 小fleeting 学习java 关于辅助书籍: Core Java 字典 比如学习完了IO的知识,觉得意犹未尽,那么就通过这本字典一样的Java书籍,把IO的知识更丰满的刷一遍 Effective Java 零食,提升代码质量 作为初学者,首要任务不…...
Arduino实例2——快乐肥宅机
最近发现了两个特别有趣的传感器,一个是巡线传感器,一个是非接触式液位传感器。有一次,我在思考有什么传感器能够检测到前面很近的距离是否有阻挡时,或者是在传送带上检测面前是否有需要处理的工件的时候,看了很久都没…...

C 语言 打印 二进制 格式 字符串
#include <stdio.h> #include "stdlib.h"char *get_byte_bits(char c);void print_byte_array(char *a, int len);char **get_bits(char *chars, int len);typedef struct ByteBits {char bits[8];int length: 8; } ByteBits;ByteBits *get_byte_bits2(char c...

第十章>>误会>>(剧情教学)
目录 前言 正文(剧情) 尾言 前言 我看了一下上一章的投票数据,显然,更多的人对解密不感兴趣,最少人选的选项(D选项写评论除外)是C:只要是你写的我都喜欢,只有一个人投&am…...

死宅学数据库设计
学习自:阿里新零售数据库设计与实战 还不如在家学习数据库设计 1 不一般的 CRUD 1.1 批量插入 (1)一条失败,全部回滚 改动前 执行插入 sql INSERT INTO t_dept VALUES (40, ACCOUNTING, NEW YORK), (50, RESEARCH, DALLAS),…...

Java算法篇之打印小星星和成绩名次统计
打印正反三角形和冒泡排序算法1.1 打印正反三角形1.2 打印相框1.3 打印字母1.3.1 打印字母一1.3.2 打印字母二1.4 分数名次统计1.1 打印正反三角形 当n3的时候,如果想要打印如下图所示的正反三角形,应该怎么做呢? *******************************如果我…...

c语言打印地址的格式错误,printf()在c中以%p格式打印的地址是哪一个?
我有简单的代码如下:#includeint glob;int main(void){int a;printf("&a is : %p \n", &a);printf("glob is : %p \n", &glob);return 0;}上述方案的产出是:第一次运行:&a is : 0x7fff70de91ecglob is :…...

【MyBatis笔记】02-MyBatis配置SQL打印
MyBatis 配置SQL打印在 SqlMappingConfig.xml 中配置以下代码: <!--配置sql打印--> <settings><setting name"logImpl" value"STDOUT_LOGGING"/> </settings>运行效果:会显示 SQL 语句,查询结果…...
技术宅用3D打印帮助妻子治疗脑瘤
2013年的夏天,Pamela Shavaun Scott每天的无时无刻不都在经历着难以忍受的头痛,已经到了整夜无法安然入睡的地步。于是Scott进行了首次磁核共振成像检查(MRI),放射科医师们发现她的脑内存在一个直径约为1英寸的肿块&am…...