【C/C++IO流汇总】C/C++IO流以及系统调用open/read/write等详解

news2024/9/19 10:41:17

IO流学习分享

  • 1、C中文件IO使用
    • 1.1、文件函数
    • 1.2、文件的使用方式
    • 1.3、文件的读写函数
    • 1.4、示例
      • 1.4.1、fgetc()函数
      • 1.4.2、getc()函数
      • 1.4.3、fputc()函数
      • 1.4.4、putc()函数
      • 1.4.5、fgets()函数
      • 1.4.6、fputs()函数
      • 1.4.7、fscanf()函数
      • 1.4.8、fprintf()函数
    • 1.5、fread()函数
      • 1.5.1、fread()函数原型
      • 1.5.2、fread() 函数参数
      • 1.5.3、fread() 函数返回值
      • 1.5.4、fread() 函数示例
    • 1.6、fwrite()函数
      • 1.6.1、fwrite()函数原型
      • 1.6.2、fwrite()函数参数
      • 1.6.3、fwrite()函数返回值
      • 1.6.4、fwrite()函数示例
    • 1.7、fread()和fwrite() 处理结构体数据
    • 1.8、fseek()函数
      • 1.8.1、函数原型
      • 1.8.2、函数参数
      • 1.8.3、origin起始位置
      • 1.8.3、fseek和ftell的综合应用示例
  • 2、C++中文件IO使用
    • 2.1、文件的分类
    • 2.2、操作文件的三大类
    • 2.3、文件的打开方式
    • 2.4、文本文件写文件步骤
    • 2.4、文本文件读文件步骤
    • 2.5、二进制文件写文件 --write()
    • 2.5、二进制文件读文件 --read()
  • 3、文件系统调用
    • 3.1、open()函数(1)
    • 3.2、open()函数(2)
    • 3.3、文件的打开方式
    • 3.4、访问权限
    • 3.5、open()示例
    • 3.6、write()函数
    • 3.7、read()函数

1、C中文件IO使用

1.1、文件函数

在这里插入图片描述

1.2、文件的使用方式

在这里插入图片描述

1.3、文件的读写函数

在这里插入图片描述

1.4、示例

1.4.1、fgetc()函数

用于从文件中读取单个字符的函数,fgetc是针对文件流操作的

#include <stdio.h>
int main() 
{
    FILE *file;
    char ch;
    file = fopen("example.txt", "r"); 
    if (file == NULL)
     {
        printf("无法打开文件");
        return 1;
    }
     // 逐个字符地读取文件内容,直到到达文件末尾
    while ((ch = fgetc(file)) != EOF)
     {
        putchar(ch); // 将读取到的字符输出到屏幕
    }
    fclose(file); // 关闭文件
    return 0;
}

1.4.2、getc()函数

用于从文件中读取单个字符的函数,getc则是针对标准输入流(stdin)操作的

#include <stdio.h>
int main() {
    int ch;
     // 逐个字符地读取标准输入流的内容
    while (ch = getc(stdin)) 
    {
        putchar(ch); // 将读取到的字符输出到屏幕
    }

    return 0;
}

区别

在C语言中,fgetc和getc函数都是用于从文件中读取单个字符的函数。它们的主要区别在于fgetc是针对文件流操作的,而getc则是针对标准输入流(stdin)操作的。

1.4.3、fputc()函数

fputc()函数是C语言中用于将一个字符写入文件的函数
参数:
c:要写入文件的字符。
stream:指向要写入的文件的文件指针。
返回值:
如果成功,返回写入的字符;如果失败,返回EOF。

#include <stdio.h>

int main() 
{
    FILE *file;
    char ch = 'A';
    file = fopen("example.txt", "w");
    if (file == NULL) 
    {
        printf("无法打开文件");
        return 1;
    }
    fputc(ch, file); // 将字符'A'写入文件
    fclose(file); // 关闭文件
    return 0;
}

1.4.4、putc()函数

putc()函数是C语言中用于将一个字符写入文件的函数。
参数:
c:要写入文件的字符。
stream:指向要写入的文件的文件指针。
返回值:
如果成功,返回写入的字符;如果失败,返回EOF。

#include <stdio.h>
int main() 
{
    FILE *file;
    char ch = 'A';
    file = fopen("example.txt", "w");
    if (file == NULL) 
    {
        printf("无法打开文件");
        return 1;
    }
    putc(ch, file); // 将字符'A'写入文件
    fclose(file); // 关闭文件
    return 0;
}

区别

在C语言中,putc()和fputc()函数都用于将单个字符写入文件,虽然putc()和fputc()在功能上非常相似,但fputc()因其明确的文件操作设计和直观的命名,通常更适合于文件写入操作。

1.4.5、fgets()函数

fgets()函数是C语言中用于从文件中读取一行字符串的函数。
参数:
str:指向一个字符数组,用于存储读取到的字符串。
n:要读取的最大字符数(包括最后的空字符’\0’)。
stream:指向要读取的文件的文件指针。
返回值:
如果成功,返回指向str的指针;如果遇到文件结束或发生错误,返回NULL。

#include <stdio.h>
int main() 
{
    FILE *file;
    char buffer[100];
    file = fopen("example.txt", "r"); 
    if (file == NULL)
     {
        printf("无法打开文件");
        return 1;
    }
    while (fgets(buffer, sizeof(buffer), file) != NULL)
     {
        printf("%s", buffer); // 输出读取到的字符串
    }
    fclose(file); // 关闭文件
    return 0;
}

1.4.6、fputs()函数

fputs()函数是C语言中用于将字符串写入文件的函数。

参数:
str:指向要写入文件的字符串。
stream:指向要写入的文件的文件指针。
返回值:

如果成功,返回非负值;如果失败,返回EOF。

#include <stdio.h>

int main() 
{
    FILE *file;
    char str[] = "Hello, World!";
    file = fopen("example.txt", "w");
    if (file == NULL) 
    {
        printf("无法打开文件");
        return 1;
    }
    fputs(str, file); // 将字符串写入文件
    fclose(file); // 关闭文件
    return 0;
}

1.4.7、fscanf()函数

fscanf()函数是C语言中的一个用于从文件中读取数据的函数

参数说明:
stream:指向要读取的文件的指针。
format:格式化字符串,用于指定输入数据的格式。
…:可变参数列表,用于存储读取到的数据。
返回值:成功读取的数据项数,如果到达文件末尾或发生错误,则返回EOF。

#include <stdio.h>

int main() {
    FILE *file;
    int num1, num2;
    char str[50];
    file = fopen("example.txt", "r");
    if (file == NULL) 
    {
        printf("无法打开文件");
        return 1;
    }
    // 从文件中读取两个整数和一个字符串
    fscanf(file, "%d %d %s", &num1, &num2, str);
    printf("读取到的整数:%d 和 %d", num1, num2);
    printf("读取到的字符串:%s", str);
    fclose(file);
    return 0;
}

1.4.8、fprintf()函数

fprintf()函数是C语言中的一个用于将格式化的数据写入文件的函数。

参数说明:
stream:指向要写入的文件的指针。
format:格式化字符串,用于指定输出数据的格式。
…:可变参数列表,包含要写入的数据。
返回值:成功写入的数据项数,如果发生错误,则返回一个负值。

#include <stdio.h>
int main() {
    FILE *file;
    int num1 = 10, num2 = 20;
    char str[] = "Hello, World!";
    file = fopen("output.txt", "w");
    if (file == NULL) 
    {
        printf("无法打开文件");
        return 1;
    }

    // 将两个整数和一个字符串写入文件
    fprintf(file, "整数1: %d, 整数2: %d", num1, num2);
    fprintf(file, "字符串: %s", str);
    fclose(file);
    return 0;
}

1.5、fread()函数

1.5.1、fread()函数原型

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

1.5.2、fread() 函数参数

ptr:指向存储读取数据的缓冲区的指针。
size:每个数据单元的大小(以字节为单位)。
nmemb:要读取的数据单元的数量。
stream:文件指针,指向要读取的文件。

1.5.3、fread() 函数返回值

fread()返回成功读取的数据单元数量。如果返回值小于nmemb,则可能是遇到了文件结尾或发生了读取错误。

1.5.4、fread() 函数示例

#include <stdio.h>
#include <stdlib.h>
 
int main() {
    FILE *file;
    char buffer[100];
    size_t bytesRead;
 
    // 打开文件以读取模式
    file = fopen("example.bin", "rb");
    if (file == NULL) {
        perror("Failed to open file");
        return EXIT_FAILURE;
    }
 
    // 读取文件内容
    bytesRead = fread(buffer, sizeof(char), sizeof(buffer), file);
    if (bytesRead < sizeof(buffer)) {
        if (feof(file)) {
            printf("End of file reached.\n");
        } else if (ferror(file)) {
            perror("Error reading file");
        }
    }
 
    // 处理读取的数据(例如打印)
    printf("Read %zu bytes from file.\n", bytesRead);
 
    // 关闭文件
    fclose(file);
    return EXIT_SUCCESS;
}

1.6、fwrite()函数

1.6.1、fwrite()函数原型

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

1.6.2、fwrite()函数参数

ptr:指向要写入数据的缓冲区的指针。
size:每个数据单元的大小(以字节为单位)。
nmemb:要写入的数据单元的数量。
stream:文件指针,指向要写入的文件

1.6.3、fwrite()函数返回值

fwrite()返回成功写入的数据单元数量。如果返回值小于nmemb,则可能是发生了写入错误。

1.6.4、fwrite()函数示例

#include <stdio.h>
#include <stdlib.h>
 
int main() {
    FILE *file;
    char buffer[100] = "This is an example of fwrite() function in C programming.";
    size_t bytesWritten;
 
    // 打开文件以写入模式
    file = fopen("example.bin", "wb");
    if (file == NULL) {
        perror("Failed to open file");
        return EXIT_FAILURE;
    }
 
    // 写入文件内容
    bytesWritten = fwrite(buffer, sizeof(char), sizeof(buffer), file);
    if (bytesWritten < sizeof(buffer)) {
        perror("Error writing file");
    } else {
        printf("Written %zu bytes to file.\n", bytesWritten);
    }
 
    // 关闭文件
    fclose(file);
    return EXIT_SUCCESS;
}

1.7、fread()和fwrite() 处理结构体数据

#include <stdio.h>
#include <stdlib.h>
 
typedef struct {
    int id;
    char name[20];
    float salary;
} Employee;
 
int main() {
    FILE *file;
    Employee emp = {1, "John Doe", 50000.0};
    Employee readEmp;
 
    // 写入结构体数据到文件
    file = fopen("employee.bin", "wb");
    if (file == NULL) {
        perror("Failed to open file");
        return EXIT_FAILURE;
    }
    fwrite(&emp, sizeof(Employee), 1, file);
    fclose(file);
 
    // 从文件读取结构体数据
    file = fopen("employee.bin", "rb");
    if (file == NULL) {
        perror("Failed to open file");
        return EXIT_FAILURE;
    }
    fread(&readEmp, sizeof(Employee), 1, file);
    fclose(file);
 
    // 打印读取的数据
    printf("ID: %d, Name: %s, Salary: %.2f\n", readEmp.id, readEmp.name, readEmp.salary);
    return EXIT_SUCCESS;
}

1.8、fseek()函数

功能说明:通过指定相对于开始位置、当前位置或流的末尾位置的字节数来重定位 curp,这取决于 fseek() 函数中指定的位置

1.8.1、函数原型

int fseek (FILE *fp, long int offset, int origin);

1.8.2、函数参数

  • 参数1 :需设置的文件指针
  • 参数2:偏移量
  • 参数3:搜索的起始位置

1.8.3、origin起始位置

在这里插入图片描述

1.8.3、fseek和ftell的综合应用示例

int main()
{
	FILE *fp;
	int nLength = 0;
	fp =fopen(1.txt”,”r+);
	if(fp == NULL)
	{
		printf(“open failed\n”);
		return -1;
	}
	fseek(fp,0,SEEK_END);//偏移到文件尾部
	nLength = ftell(fp);//获取当前文件指针离文件开头的字节数
	printf(“the file length is %d\n”, nLength);
	fclose(fp);
}

2、C++中文件IO使用

2.1、文件的分类

1、文本文件:文件以文本的ascll码形式存储在计算机中。
2、二进制文件:文件以文本的二进制形式存储在计算机中。

2.2、操作文件的三大类

  • ofstream:写操作
  • ifstream:读操作
  • fstream:读写操作

2.3、文件的打开方式

在这里插入图片描述

2.4、文本文件写文件步骤

  • 包含头文件 #include
  • 创建流对象 ofstream ofs;
  • 打开文件 ofs.open("文件路径”,打开方式);
  • 写数据 ofs<<“写入的数据”;
  • 关闭文件 ofs.close();
    示例
#include <fstream>
using namespace std;
int main()
{
	ofstream ofs;
	ofs.open("demo.txt",ios::in);
	if(!ofs.is_open())
	{
		cout<<"文件打开失败!"<<endl;
	}
	ofs<<"写入的数据"<<endl;
	ofs.close();
	return 0;
}

2.4、文本文件读文件步骤

  • 包含头文件 #include
  • 创建流对象 ifstream ifs;
  • 打开文件 ifs.open("文件路径”,打开方式);
  • 读数据 --四种方式
  • 关闭文件 ofs.close();
    示例
#include <fstream>
#include <string.h>
using namespace std;
int main()
{
	ifstream ifs;
	ifs.open("demo.txt",ios::out);
	if(!ifs.is_open())
	{
		cout<<"文件打开失败!"<<endl;
	}
	//第一种方式
	char buf[1024]={0};
	while(ifs>>buf)
	{
		cout<<buf<<endl;
	}
	//第二种方式
	char buf[1024]={0};
	//循环读取一行数据
	while(ifs.getline(buf,sizeof(buf)))
	{
		cout<<buf<<endl;
	}
	//第三种方式
	string buf;
	while(getline(ifs.buf))
	{
		cout<<buf<<endl;
	}
	//第四种方式
	char c;
	while((c=ifs.get())!=EOF)
	{
		cout<<c;
	}
	ifs.close();
	return 0;
}

2.5、二进制文件写文件 --write()

二进制方式写文件主要利用流对象调用成员函数write
函数原型:ostream &write(const char *buffer,int len);
参数:字符指针buffer指向内存中一段存储空间,len是读写字节数

#include <fstream>
#include <string>
 
 class Person
 {
 	public:
 		char m_Name[64];
 		int m_Age;
 };
 void test01()
 {
 	ofstream ofs("person.txt",ios::out | ios::binary);
 	if(!ofs.is_open())
 	{	
 		cout<<"文件打开失败!"<<endl;
 	}
 	Person p={"张三",18};
 	ofs.write((const char *)&p,sizeof(p));
 	ofs.close();
 }
 int main()
 {
 	test01();
 	return 0;
 }

2.5、二进制文件读文件 --read()

二进制方式读文件主要利用流对象调用成员函数read
函数原型 istream & read(char * buffer,int len);
参数:字符指针buffer指向内存中一段存储空间,len是读写字节数

#include <iostream>
#include <fstream>
class Person
{
	public:
 		char m_Name[64];
 		int m_Age;
};
void test02()
{
	ifstream ifs;
	ifs.open("pperson.txt",ios::in|ios::binary);
	if(!ifs.is_open())
	{
		cout<<"文件打开失败!"<<endl;
		return;
	}
	Person p;
	ifs.read((char *)&p,sizeof(Person));
	cout<<p.m_Name<<p.m_Age<<endl;
	ifs.close();
}

int main()
{
	void test02();
	return 0;
}

3、文件系统调用

3.1、open()函数(1)

函数原型

int open(const char *path, int flags);

参数
path :文件的名称,可以包含(绝对和相对)路径
flags:文件打开模式
返回值
打开成功,返回文件描述符;
打开失败,返回-1

3.2、open()函数(2)

函数原型

int open(const char *path, int flags,mode_t mode);

参数
path :文件的名称,可以包含(绝对和相对)路径
flags:文件打开模式
mode: 用来规定对该文件的所有者,文件的用户组及系统中其他用户的访问权限,则文件权限为:mode&(~umask)
返回值
打开成功,返回文件描述符;
打开失败,返回-1

3.3、文件的打开方式

所有这些标志值的符号名称可以通过#include<fcntl.h>访问

在这里插入图片描述

3.4、访问权限

在这里插入图片描述

3.5、open()示例

#include <fcntl.h>
#include <sys/stat.h>
#include <stdio.h>
#include <unistd.h>
void main()
{
	int outfd = 0;
	outfd =open(“myfile",O_WRONLY|O_CREAT|O_TRUNC,S_IRWXU|S_IRGRP);
	if(outfd==-1)
	{
		perror(“fail to open file\n”);
		exit(-1);
	}
	else
	{
		perror(“success to open file\n”); 
	}
	close(outfd); //关闭文件描述符
}

3.6、write()函数

函数原型

int write(int fd,void *buf,size_t nbytes);

函数参数:
fd :要写入的文件的文件描述符
buf: 指向内存块的指针,从这个内存块中读取数据写入到文件中
nbytes: 要写入文件的字节个数
返回值
如果出现错误,返回-1
如果写入成功,则返回写入到文件中的字节个数
示例

#include <iostream>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <strings.h>
#include <string.h>

using namespace std;
int main()
{
    char buf[20] = {0};
    umask(0);//放弃权限掩码
    int fd = open("/root/test.txt",O_CREAT|O_WRONLY,0777);
    if (fd == -1)
    {
       	perror("文件创建失败");
    }
    else
    {
        cout << "文件创建成功" << endl;
        while (1)
        {
             cout << "请输入内容"<<endl;
             cin >> buf;
             cout << "buf的值为==" << buf << endl;
             if (strcmp(buf,"over") == 0)
             {
                     bzero(buf,sizeof(buf));
                     close(fd);
                     break;
             }else
             {
                     int wres = write(fd, buf, strlen(buf));
                     bzero(buf, sizeof(buf));
                     cout << "内容输入成功" << endl;
             }
        }
    }
} 

3.7、read()函数

函数原型

int read(int fd, void *buf, size_t nbytes)

参数
fd :想要读的文件的文件描述符
buf: 指向内存块的指针,从文件中读取来的字节放到这个内存块中
nbytes: 从该文件复制到buf中的字节个数
返回值
如果出现错误,返回-1
返回从该文件复制到规定的缓冲区中的字节数,文件结束,返回0否则
示例

#include<iostream>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<dirent.h>
using namespace std;
int main()
{
	 char buf[20] = {0};
	 umask(0);//放弃权限掩码
	 int fd = open("/root/OMO230501", O_CREAT|O_WRONLY, 0777);
	 if(fd == -1)
	 {
	       perror("文件创建失败");
	 }
	 else
	 {
	       cout << "文件创建成功" << endl;
	       cin >> buf;
	       int wres = write(fd,buf,sizeof(buf));
	       close(fd);
	 }
	 char buf[1000] = { 0 };
	 int res=0;
	 umask(0);
	 int wfd = open("/root/w.png", O_CREAT | O_WRONLY, 0777);//副本
	 int rfd = open("/root/picture/xiao.jpg", O_RDONLY);
	 if (wfd < 0 || rfd < 0)
	 {
	       cout << "文件创建失败" << endl;
	 }
	 while ((res = read(rfd, buf, sizeof(buf))) != 0)
	 {
	       int wres = write(wfd, buf, res);
	       bzero(buf,sizeof(buf));//清空数组
	       cout << "resd" << res << endl;
	       cout << "write" << wres << endl;
	 }
	 close(rfd);
	 close(wfd);
	return 0;
}

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

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

相关文章

stm32之SPI通信协议

文章目录 前言一、SPI通信协议1.1 SPI简介1.2 SPI通信特点1.3 SPI与I2C对比 二、SPI硬件电路三、SPI通信原理四、SPI时序单元4.1 起始和终止条件4.2 交换一个字节(模式1)4.3 交换一个字节(模式0)4.4 交换一个字节(模式2和3) 五、SPI时序5.1 发送指令5.2 指定地址写5.3 指定地址…

软件部署-Docker容器化技术

开始前的环境说明 VMware 17 Pro Centos release 7.9.2009(防火墙已关闭) Docker 26.1.4 Docker镜像加速器配置:"https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", &…

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案&#xff0c;还是尝试组织和编辑主文档&#xff0c;PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时&#xff0c;请考虑这些因素。 1. 确定您的…

十一、MySQL高级—工具和技巧拾遗~视图 VIEW(4)

&#x1f33b;&#x1f33b; 目录 一、是什么二、作用三、适用场景四、语法五、注意事项(适用5.5) 文章大纲 &#x1f447;&#x1f447; 一、是什么 将一段查询sql封装为一个虚拟的表。 这个虚拟表只保存了sql逻辑&#xff0c;不会保存任何查询结果。 二、作用 1、封装复杂sql…

开放式系统互连(OSI)模型的实际意义

0 前言 开放式系统互连&#xff08;OSI&#xff0c;Open Systems Interconnection&#xff09;模型&#xff0c;由国际标准化组织&#xff08;ISO&#xff09;在1984年提出&#xff0c;目的是为了促进不同厂商生产的网络设备之间的互操作性。 定义了一种在层之间进行协议实现…

EVO进行轨迹评估

EVO进行轨迹评估 文章目录 EVO进行轨迹评估1 前言1.1 轨迹对齐1.2 尺度变换1.3 绝对轨迹误差ATE和相对轨迹误差RTE1.4 绝对姿态误差APE和相对姿态误差RPE 2 安装evo2.1 evo安装2.2 相关报错2.2.1 版本不兼容问题2.2.2 解决PATH警告 2.3 测试 3 evo指令3.1 evo_traj3.2 evo_ape3…

深入理解单元测试

荐语 本文要介绍的是 2020 年 O’Reilly 出版的书籍 Unit Testing Principles, Practices, and Patterns&#xff0c;一本在豆瓣评分高达 9.9 的好书。 作为一名软件开发工程师&#xff0c;你应该对单元测试&#xff08;unit test&#xff09;很熟悉&#xff0c;但单元测试的目…

Scratch中秋节:中秋节赏月

小虎鲸Scratch资源站-免费Scratch作品源码,素材,教程分享平台! 作品推荐&#xff1a;中秋节赏月 | 一起享受中秋的美好时光 中秋佳节即将来临&#xff0c;一起感受传统节日的温馨氛围吧&#xff01;小虎鲸Scratch资源站最新推出的节日作品《中秋节赏月》&#xff0c;将带你走进…

CTK框架(四): 插件编写

目录 1.生成插件 1.1.环境说明 1.2.服务类&#xff0c;纯虚类&#xff0c;提供接口 1.3.实现插件类&#xff0c;实现纯虚函数 1.4.激活插件&#xff0c;加入ctk框架的生命周期中 1.5.添加资源文件 1.6..pro文件 2.使用此插件 3.总结 1.生成插件 1.1.环境说明 编译ct…

【论文精读】 | 用于时间序列预测的通道对齐坚固的混合Transformer

文章目录 0、摘要1、介绍2、相关工作2.1 用于时间序列预测的Transformers2.2 用于时间序列预测的 RNN、MLP 和 CNN 模型 3、模型结构3.1 令牌化3.2 CARD 注意力胜过token3.3 CARD 注意力胜过渠道3.4 token 混合模块 4、基于信号衰减的损失函数5、实验5.1 长期预测5.2 基于重建的…

STM32——串口通信(发送/接收数据与中断函数应用)

文章目录 通信&#xff1a;串口通信简介&#xff1a;1.双工/单工&#xff1a;2.同步/异步&#xff1a;3.电平&#xff1a;电平标准&#xff1a; 串口参数以及数据帧时序&#xff1a;数据帧&#xff1a;1.波特率和比特率&#xff1a;例&#xff1a;无校验&#xff0c;1位停止位 …

B: 小球反弹

目录 一&#xff1a; 二&#xff1a; 三&#xff1a; 四&#xff1a; 一&#xff1a;问题描述 有一长方形&#xff0c;长为343720 单位长度&#xff0c;宽为233333 单位长度。在其内部左上角顶点有一小球&#xff08;无视其体积&#xff09;&#xff0c;其初速度如图所示且…

【MySQL】MySQL中表的增删改查——(基础篇)(超详解)

前言&#xff1a; &#x1f31f;&#x1f31f;本期讲解关于MySQL中CDUD的基础操作&#xff0c;希望能帮到屏幕前的你。 &#x1f308;上期博客在这里&#xff1a;http://t.csdnimg.cn/fNldO &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 目录 …

Python Flask_APScheduler定时任务的正确(最佳)使用

描述 APScheduler基于Quartz的一个Python定时任务框架&#xff0c;实现了Quartz的所有功能。最近使用Flask框架使用Flask_APScheduler来做定时任务&#xff0c;在使用过程当中也遇到很多问题&#xff0c;例如在定时任务调用的方法中需要用到flask的app.app_context()时&#…

Transformer预测 | 基于Transformer心率时间序列预测(tensorflow)

效果一览 基本介绍 Transformer预测 | 基于Transformer心率时间序列预测(tensorflow) 程序设计 import pandas as pd from pandas.plotting import lag_plot from statsmodels.graphics

暴雨AMD,一起更YES

9月6日&#xff0c;暴雨信息联合AMD举办了“创新驱动 智能未来——2024年行业技术与应用分享会”。在这里&#xff0c;我们与行业领袖、技术专家们一起&#xff0c;深入探讨AI技术的前沿技术动态&#xff0c;洞悉高性能计算的发展趋势&#xff0c;在思维的碰撞和智慧的交融中&a…

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型&#xff0c;提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练&#xff0c;提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的&#xff1f;使用了哪些 NLP 已有的技术和思想&#xff…

进程等待与退出

目录 前言 0.进程如何退出 1.进程status的获取 2.进程status的组成 3.退出status的分用与验证 4.解释一下errno与waitpid输中status参数的关系 5.status设计 前言 我们在编写程序的时候&#xff0c;我们往往需要知道这个程序中的某个进程执行情况是怎么样的&#xff…

我搞了一台switch

准确的说我搞了一台switch oled。为啥要买个游戏机呢&#xff1f;前些日子去轰趴馆团建&#xff0c;玩了一会switch&#xff0c;当时玩的游戏是《刺客信条3重制版》&#xff0c;感觉挺好玩的。我其实是手残党&#xff0c;很多网络游戏玩的都不是很好&#xff0c;而且大学的时候…

【阿一网络安全】如何让你的密码更安全?(二) - 非对称加密

上次《【阿一网络安全】如何让你的密码更安全&#xff1f;(一) - 对称加密》提到加密算法的对称加密&#xff0c;我们这次来聊聊非对称加密。 和对称加密不同&#xff0c;非对称加密的加密密钥和解密密钥不同。 非对称加密 大概过程就是&#xff0c;发送方使用公钥对明文数据…