流和流库[给初学者非常有用]

本月推:15 个有用的 JavaScript 和 CSS 库 无论是希望创建一个视觉上吸引人和功能强大的布局,还是需要在表单和其他区域添加屏幕上的规则和验证,你都会喜欢这个集合。这里列出的库是由具有丰富网页设计经验的专家创建的,这些库不仅是经验丰富的设计师的优秀工具,也是适用于初学者的好工具。这个集合将会帮你节省很多时间,来看一看吧! 0. Buefy 适用于 Vue.js 项目的轻量级 UI 框架,使用流行的基于 flexbox 的 CSS 库... 阅读详情
 

流和流库

概 述 
      在C语言中,输入/输出系统的特点是缺乏类型检查机制。如printf函数,在格式控制字符串后的参数,即使类型和个数与其不匹配,编译是不会出错,但运行时会得到错误的结果。C++提供了新的输入/输出方式。其主要目标是建立一个类型安全,扩展性好的输入/输出系统。在一个类型安全的输入/输出系统中,类似上述printf的错误在编译时就可发现。一个理想的可扩展的输入/输出系统必须能以两种方式进行扩展:
      1.能够包含用户定义的数据类型。
      2.能够包含新的输入/输出方法。
     在C++中输入/输出流库充分利用了C++的面向对象的特性实现了上述目标。


流的概念 
         所谓流是指数据从一个位置流向另一个位置。流是C++为输入/输出提供的一组类,都放在流库中。流总是与某一设备相联系(例如,键盘,屏幕或硬盘等),通过使用流类中定义的方法,就可以完成对这些设备的输入/输出操作。一般,若要在流中存储数据,这个流为输出流;要从流中读取数据,这个流为输入流。有的流既是输入流,又是输出流。流类形成的层次结构就构成流类库,即流库。与C 语言中的输入/输出流库一样,C++的输入输出流库不是语言的一部分,而是作为一个独立的函数库提供的。因此,在使用时需要包含相应的头文件。
     输入流和输出流:在编写程序时,常要输入一些数据,在处理完数据之后,有要把结果输出. c++ 没有专门的输入输出语句,输入输出都有流库来处理.通过输出流,拥护可以从这些设备中读取数据;通过输出流则可以往设备中写数据.
     输出流:我们用cout输出过数据.实质上.cout 就是输出流类ostream的派生类预定义的一个对象.它与标准输出设备相联系,以便把数据送往屏幕显示.在ostream类中,重载了<<运算符,用来处理各种内部类型的输出
     输入流:c++也为输入定义了一个流类istream.这个类中重载了>>运算符,以便从先观的设备中读取数据,对应与插入运算.这里>>运算符内称为析取运算.

流运算符     

重载插入运算符

    在ostream类中,重载了<<运算符,用来处理各种内部类型的输出,ostream的定义放在iostream.h头文件中:
class ostream:public virtual ios{
            //……
            public:
                ostream&operator<<(const char*);
                ostream&operator<<(char); 
                ostream&operator<<(short i){
                      return *this<<int(i);
                }
                ostream&operator<<(int);
                ostream&operator<<(long);
                ostream&operator<<(double);
                ostream&operator<<(const void*); 
           // ……
};
注:其中char*用于输出字符串,void*用于输出指针的地址值 


重载析取运算符 

class istream:public virtual ios{
                 //……
                public:
                    istream&operator>>(char *);//字符串
                    istream&operator>>(char &);//字符 
                    istream&operator>>(shirt &);
                    istream&operator>>(int &);
                    istream&operator>>(long &);
                    istream&operator>>(float &);
                    istream&operator>>(double &);
                 //...
};
istream将ios作为基类.他也为所有内部类型定义了析取运算.在iostream.h头文件总预定义了一个istream派生类的对象cin,cin与标准输入相联系,用语从键盘输入数据.
例如:
   //...
   int i;
   cin >>i;
   //...
cin>>i将调用cin.operator.(i),把键盘中输入的整数存放到变量i中.

格式控制

         在前面,输入/输出的数据没有指定格式,它们都按缺省的格式输入/输出。然而,有时需要对数据格式进行控制。这时需利用ios类中定义的格式控制成员函数,通过调用它们来完成格式的设置。ios类的格式控制函数如下所示:
1.宽度控制
       ios的成员函数width()是指定在输入/输出一个数字或串时,缓冲去可存储的最大字符数,在输入流总,长用他来防止缓冲区溢出,
例如:
     char buffer[20];
     cin.width(20);
     cin>>buffer;
width()调用告诉cin插入操作一次最多能读入20个字符,从而可以保证buffer中的数不会因为超过20而溢出.

2.格式状态
    在ios类中,定义了一个表示流状态的枚举,枚举中有各种标志,用它们进一步控制输入输出,
在ios类中定义了几个成员函数,用来设置,读取和取消标志位:
long flags( ) const 返回当前的格式标志。 
long flays(long newflag) 设置格式标志为newflag,返回旧的格式标志。 
long setf(long bits) 设置指定的格式标志位,返回旧的格式标志。 
long setf(long bits,long field)将field指定的格式标志位置为bits,返回旧的格式标志  
long unsetf(long bits) 清除bits指定的格式标志位,返回旧的格式标志。 
long fill(char c) 设置填充字符,缺省条件下是空格。 
char fill( ) 返回当前填充字符。 
int precision(int val) 设置精确度为val,控制输出浮点数的有效位,返回旧值。 
int precision( ) 返回旧的精确度值。 
int width(int val) 设置显示数据的宽度(域宽),返回旧的域宽。 
int width( )只返回当前域宽,缺省宽度为0。这时插入操作能按表示数据的最小宽度显示数据 

3.控制符
   在前面.控制输入/输出采用的是函数的形式,但他们使用起来并不方便.为此,c++提供了控制符,他可以直接插入或析取运算中.
    预定义的操纵算子
    使用成员函数控制格式化输入输出时,每个函数调用需要写一条语句,尤其是它不能用在插入或提取运算符的表达式中,而使用操纵算子,则可以在插入和提取运算符的表达式中控制格式化输入和输出。在程序中使用操纵算字必须嵌入头文件iomanip.h

    一般,预定义的控制符有以下几种:
dec 十进制的输入输出 
hex 十六进制的输入输出 
oct 八进制的输入输出 
ws 提取空白字符 
ends 输出一个nul字符 
endl 输出一个换行字符,同时刷新流 
flush 刷新流 
resetiosflags(long) 请除特定的格式标志位 
setiosflags(long) 设置特定的格式标志位 
setfill(char) 设置填充字符 
setprecision(int) 设置输出浮点数的精确度 
setw(int) 设置域宽格式变量 


其它流函数

    在ios,istream和ostream类中,还定义了若干输入输出函数,它们主要用于错误处理,流的刷新以及流输入输出方式的控制.
    错误处理
    在对一个流对象进行I/O操作时,可能会产生错误。当错误发生时,错误的性质被记录在ios类的一个数据成员中。

    ios类中定义的描述错误状态的常量:
       goodbit-------------没有错误,正常状态 
       eofbit--------------到达流的结尾 
       failbit-------------I/O操作失败,清除状态字后,可以对流继续进行操作。 
       badbit--------------试图进行非法操作,清除状态字后,流可能还可以使用。 
       hardfail------------致命错误,不可恢复的错误。 
    对应于这些位,可用ios中定义的如下函数来检查流的当前状态位:
       int good()---------如果正常,返回非0值
       int bad()----------如果badbit被设置,返回非0值
       int eof()----------如果eofbit被设置,返回非0值
       int fail()---------如果failbit被设置,返回非0值
       int rdstate()------返回当前错误状态位.

    流的其它成员函数可以从流中读取字符或字符串,对流进行无格式化的输入 输出操作,以及直接控制对流的I/O操作。

返回类型         ostream类的成员                   描      述 
ostream&         put(char ch)                 向流中输出一个字符ch,不进行任何转换 
ostream&        write(char*,int)         向流中输出指定长度的字符串,不进行转换 
ostream&         flush( )                           刷新流,输出所有缓冲的但还未输出的数据 
ostream&        seekp(streampos)         移动流的当前指针到给定的绝对位置 
ostream&     seekp(sereamoff,seek_dir)   流的当前指针类似与文件的当前指针 
streampos        teelp( )                        返回流的当前指针的绝对位置 

istream类的成员函数

返回类型           istream类的成员                描       述 
 int                      get( )                              读取并返回一个字符 
istream&            get(char&c)                  读取字符并存入c中 
istream&             putback( )                 将最近读取的字符放回流中 
istream&           read(char*,int)          读取规定长度的字符串到缓冲区中 
int                      peek( )                               返回流中下一个字符,但不移动文件指针 
istream&          seekg(streampos)           移动当前指针到一绝对地址 
istream&        seekg(streampos,seek_dir)    移动当前指针到一相对地址 
streampos              tellg( )                    返回当前指针 

文件流

      C++系统通过对流类进一步扩展,提供了支持文件I/O的能力,使得程序员在建立和使用文件时,就像使用cin和cout一样方便。下图新派生的五个类用于文件处理。fstreambase类提供了文件处理所需的全部成员函数,在它的派生类中没有提供新的成员函数。 ifstream类用于文件的输入操作;ofstream类用于文件的输出操作,fstream类允许对文件进行输入/输出操作。这几个类同时继承了前面介绍的流类的基本类等级中定义的成员函数。使用这些类时,必须在程序中嵌入头文件fstream.h通过打开一个文件,可将一个流与一个文件相联结。
      filedbuf是streambuf的派生类,提供对文件缓冲区的管理能力。我们一般不涉及这个类C++系统通过对流类进一步扩展,提供了支持文件I/O的能力,这使得程序员在建立和使用文件时,就像使用cin和cout一样方便。左图新派生的五个类用于文件处理。fstreambase类提供了文件处理所需的全部成员函数,在它的派生类中没有提供新的成员函数。ifstream类用于文件的输入操作;ofstream类用于文件的输出操作,fstream类允许对文件进行输入/输出操作。这几个类同时继承了前面介绍的流类的基本类等级中定义的成员函数。使用这些类时,必须在程序中嵌入头文件fstream.h通过打开一个文件,可将一个流与一个文件相联结。在ios类中定义的一组枚举常量名给出了可允许的文件打开方式:

in----------------------- 打开一个文件进行操作 
out---------------------- 打开一个文件进行写操作 
ate---------------------- 文件打开时将文件指针指向文件尾 
app---------------------- 添加,输出的内容添加到文件尾 
trunc-------------------- 若文件存在,清除原有内容,将长度截为0 
nocreat------------------ 若文件不存在,打开操作失败 


文件的打开与关闭

       在C++中,打开一个文件就是将这个文件与一个流建立关联,关闭一个文件就是取消这种关联。要执行文件的输入/输出,必须做三件事:
1)在程序中包含头文件ifstream.h
2)建立流。建立流的过程就是定义流类的对象,例如:

ifstream in;定义了输入流对象in
ofstream out;定义了输出流对象out
fstream io;定义了输入/输出流对象io

3)使用open( )函数打开文件,是某一文件与上面的某一流相联系。
open( )函数的原形为void open(const unsigned char*,int mod,int file_attrb);文件属性。取值为0代表普遍文件,1为隐藏文件等,缺省值为0。打开的文件使用完毕,必须将它关闭,关闭文件使用close( )函数,close( )函数也是流类中的成员函数。 打开一输入文件


ifstream input;
input.open("test1",ios::in,0);
打开一输出文件
ofstream output;
output.open("test2",ios::out,0);
打开一输入/输出文件
fstream both;
both.open("test",ios::in,ios::out,0);
可简化为:
fstream both("test",ios::in,ios::out,0);
关闭文件:both.close( );
文件流成员函数open()的格式如下所示:
  void open(char * name,int mode,int file_attrb);
在这里name表示文件名,mode是下列值之一:
ios::app--------------------所有数据以附加方式写到流
ios::ate--------------------打开文件,并把文件指针移到文件尾
ios::in---------------------为读打开文件
ios::out--------------------为写打开文件
ios::trunc------------------如果文件存在,舍去文件内容
ios::nocreate---------------如果文件不存在,则失败
ios::noreplace--------------如果文件存在,则失败


文件的读写    

    C++把文件看作是字符序列,即所谓流式文件。根据数据的组织形式,文件又可分为ASCII码文件和二进制文件两种。如果要进行文件的输入输出,必须先建立一个流,然后将这个流与文件相关联,即打开文件,此时才能进行读写操作,完成后再关闭这个文件。如果建立的文件是供人阅读的,它必须以文本方式打开,如果是供其它程序使用,则可以使用二进制文件或文本文件。 

关于VS的esp-idf基本库和个人库关于头文件标红报错的解决方案 当初学者开始了解乐鑫的产品时常常关于开发环境感到头疼,这里讲一下初学者经常遇到的找不到头文件路径的问题。 这里我用一个乐鑫的示例工程作为演示。图比较多,请耐心浏览。 编译完成后就不报错了。 在实际过程中,我们要对工程进行模块化,所以就必须要学会创建添加自己的库。 首先 ,创建一个组件文件夹,名字是组件(components),其他名字应该也可以但是为了防止各种问题,就使用components。 之后在这个文件夹中添加 .txt 文件,名字命 阅读详情

相关推荐

5 个超有用但你大概率没听过的 Python 库(别装你全用过)

pyttsx3→ 让 Python 有嘴巴,讲人话。pynput→ 操控键鼠,偷天换日。termgraph→ 终端小图表,拒绝土味打印。→ 进度条卷王,装逼必备。Faker→ 假数据工厂,一秒填满表单。你都看到这儿了,聪明的你一定已经意识到——这些工具,不一定天天用,但关键时刻,能救你狗命。写工具脚本、调试、展示效果,统统拿下。pyttsx3 是 Python 的嘴,Faker 是它的胡说八道。有问题戳我评论区,花姐永不掉线。

奔跑的蜗牛 1537

开源路线图规划器:基于React与Git的轻量级项目规划工具

在现代软件开发中,项目规划与可视化是确保团队协作效率的关键环节。其核心原理在于将抽象的战略目标转化为清晰、可执行的时间轴视图,通过数据模型定义里程碑、任务依赖与状态跟踪。这一过程的技术价值在于降低沟通成本、对齐团队期望,并支持敏捷迭代。常见的应用场景包括产品功能规划、技术债务管理及开源项目路线制定。本文聚焦的开源路线图规划器,正是基于React、TypeScript等现代Web技术栈构建的轻量级解决方案,它利用Git实现版本控制与协作,并支持自定义数据模型与可视化引擎,帮助中小团队以低成本实现高效规划。

weixin_30550081的博客 306

Arduino初学者必备库合集大全

本文还有配套的精品资源,点击获取 简介:Arduino库是其功能扩展的关键,它们简化了复杂硬件设备的操控与应用。本合集为Arduino初学者提供了丰富的库资源,涵盖红外通信、USB HID设备控制、GSM模块通讯、舵机与步进电机驱动、以及多种显示器模块。这些库文件使初学者能够快速上手并实现从基础到复杂项目的设计与实践。 1. 探索多样的硬件接口库 在现代信息...

weixin_42230607的博客 2681

【C++】I/O流类库

数据的输入和输出(input/output简写为I/O),对标准输入设备和标准输出设备的输入输出简称为标准I/O。对在外存磁盘上的文件输入输出简称为文件I/O。对内存中指定的字符串存储空间的输入输出简称为串I/O。

fakerth的博客 875

PySide6多线程避坑大全:信号槽崩溃、内存泄漏,这些雷我都帮你踩过了

本文深入探讨了PySide6多线程开发中的常见问题与解决方案,包括信号槽崩溃、内存泄漏等典型陷阱。通过实战案例和优化策略,帮助开发者避免UI线程操作错误、有效管理资源生命周期,并提升跨线程通信的可靠性。特别针对PySide6多线程特性,提供了线程安全日志、死锁检测等实用调试技巧。

weixin_32288959的博客 397

告别FreeRTOS?手把手带你用NuttX在STM32F4-Discovery上跑起第一个Shell

本文详细介绍了如何在STM32F4-Discovery开发板上从FreeRTOS迁移到NuttX,并运行第一个Shell。NuttX以其完整的POSIX兼容性和模块化架构优势,特别适合复杂网络应用的开发。通过环境搭建、移植配置、调试技巧及POSIX开发实践,帮助开发者高效构建嵌入式系统。

weixin_42526417的博客 302

C++I/O流详解

C++ I/O流详解

qq_52905520的博客 3417

OpenEarthMap 与 xBD 数据集合并

整合好的数据:链接: https://pan.baidu.com/s/1uJ_Zg6n-s3u1D49OW52D7Q?pwd=2vwx 提取码: 2vwx完整整合步骤与代码如下。

qq_60293814的博客 1598

流类库与输入输出

I/O流的概念: v 当程序与外界环境进行信息交换时,存在着两个对象,一个是程序中的对象,另一个是文件对象。 v 流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。 v 程序建立一个流对象,并指定这个流对象与某个文件对象建立连接,程序操作流对象,流对象通过文件系统对所连接的文件对象产生作用。   输出流: v 最重要的三个输出流是

枫闲言的博客 942

matlab液体湿润模拟,【水文模型】01 三水源新安江模型

目录一、概述1.1 流域概况1.2 产流方式论证1.3 设计基本任务1.4 设计原始资料二、新安江模型2.1 流域划分2.2 产汇流计算2.2.1 蒸散发计算2.2.2 产流计算2.2.3 水源划分2.2.4 汇流计算2.3 模型参数2.3.1 参数物理意义2.3.2 参数率定结果2.4 模拟结果2.4.1 精度统计表2.4.2 计算与实测流量过程线比较三、精度统计与误差分析3.1 精度统计3.2...

weixin_34173656的博客 5328

在Ubuntu 20.04上,用EtherCAT Igh 1.6.2驱动高创BD3E伺服电机(附完整C代码)

本文详细介绍了在Ubuntu 20.04实时内核环境下,使用EtherCAT Igh 1.6.2主站驱动高创BD3E伺服电机的完整实现方案。从实时系统配置、伺服电机PDO映射到精确控制线程设计,提供了完整的C代码样例和实际项目中的调试技巧,帮助开发者实现工业自动化中的高精度运动控制。

weixin_30772105的博客 111

c++ 流类库

I/O流概念: 流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动 程序将流动对象看作是文件对象的化身 读操作为:提取 写操作为:插入 在I/O流中 已经声名了4个流对象 输入:cin 输出:cout cerr clog I/O流类层次图 抽象流基类 类名 头文件 ios ios 流基类 输入流类: 类名 头文件 istream istream 通用输入流 ifstream f.

qq_45303986的博客 697

【TC3xx芯片】TC3xx芯片电源管理系统PMS详解

本文主要介绍了TC3xx芯片的电源管理系统(PMS),重点探讨了供电模式选择、电源监控机制及电源管理模式。文章首先分析了4种供电模式及其硬件配置方式,详细说明了3.3V单电源供电模式的特点;其次阐述了Primary和Secondary两种电源监控机制,包括阈值配置和异常中断处理;最后重点讲解了CPU和系统的电源管理模式,特别对Standby模式及其进入/退出条件进行了详细说明。文章以软件开发视角解析了TC3xx芯片的电源管理功能,为ECU低功耗设计提供了技术参考。

redparrot2008的博客 1531

8 个极其罕见但非常有用的 Python 库

正如我们所看到的,这 8 个 Python 库非主流,但却为各个领域的开发者提供了难以置信的价值。从调试到游戏开发和数据分析,这些库都是可以帮助你事半功倍的强大工具。一、Python所有方向的学习路线Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。二、全套PDF电子书。

2301_78150559的博客 1314

使用 MATLAB/Simulink + Communications Toolbox + 5G Toolbox,构建一个2×2 MIMO-OFDM通信系统

本文通过Simulink+CommunicationsToolbox构建2×2 MIMO-OFDM通信系统,重点实现信道均衡滤波器(ZF与MMSE)的设计与应用。详细介绍了系统架构、建模步骤(包括信道估计、均衡器实现)和仿真场景设计,通过BER、星座图和EVM对比分析验证了MMSE均衡器在抑制噪声和信号恢复方面的优势。文章总结了MIMO均衡的核心原理与实践经验,并提出了扩展至大规模MIMO、深度学习均衡器等优化方向,为无线通信系统设计提供实用指导。

amy_mhd的博客 127

【三维激光扫描】第二章:国内外三维激光扫描设备简介

地面三维激光扫描仪是地面激光扫描系统中最主要的硬件设备,近年来得到了快速发展,主要体现在品牌数量、性能指标、类型等方面的变化。本章主要介绍国内外主要设备的基本情况,对国内外研究现状进行分析,最后指出目前存在的问题与未来的发展趋势。 2.1 国外地面三维激光扫描仪简介 目前,生产地面三维激光扫描仪的公司比较多,随着地面三维激光扫描技术应用普及程度的不断提高,国外产品在中国的市场目前还占主导地位。它们各自的产品在性能指标上有所不同,以下简要介绍有代表性的公司产品。 2.1.1 奥地利 Riegl公司的.

智慧空间实验室 4645

十个超有用的 Python 的库

对了,各位看官,小生才情有限,笔墨之间难免会有不尽如人意之处,还望多多包涵,不吝赐教。这里不仅有好玩的内容和知识等着你,还特别欢迎你畅所欲言,分享你的想法和见解。你可以把这里当作自己的家,无论是工作之余的小憩,还是寻找灵感的驿站,我都希望你能在这里找到属于你的那份快乐和满足。除了简单的色彩调整外,OpenCV还可以进行更加复杂的操作,如边缘检测、形状识别等,为开发者提供了无限可能的空间去探索图像背后的奥秘。

master_chenchen的博客 975

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

针对初学者的C和C++23的对比学习-14.文件和流

针对初学者的C和C++23的对比学习-14.文件和流 旨在帮助有一定C语言基础,且想要学习C++23标准相关规则的初学者,提供笔记和帮助

weixin_46424672的博客 4757

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

分享15个Python高级库,让初学者爱不释手

为什么我喜欢Python 对于初学者来说,这是一种简单易学的编程语言;另一个原因:大量开箱即用的第三方库,正是 23 万个由用户提供的软件包使得Python真正强大和流行。 在本文中,我挑选了15个最有用的软件包,介绍它们的功能和特点。 1. Dash Dash是比较新的软件包,它是用纯Python构建数据可视化app的理想选择,因此特别适合处理数据的任何人。Dash是Flask,Plotly.js和React.js的混合体。 2. Pygame Pygame是SDL多媒体库的Python装

m0_54214980的博客 7701

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

8个极其罕见但非常有用的Python库

这8个Python库非主流,但却为各个领域的开发者提供了难以置信的价值。从调试到游戏开发和数据分析,这些库都是可以帮助你事半功倍的强大工具。

m0_75067629的博客 909

python很有用吗_你不觉得这些不常用的python库很有用吗

数据科学中一些不常用但很有用的Python库,虽然这些python库不常用,但却离不了,为何呢,今天就随着IT培训网小编一睹python库的奥秘之处吧!导读提到数据科学的python包,大家想到的估计是numpy,pandas,scikit-learn之类的,这里给大家介绍一些不常用,但是非常有用的python包,就像是痒痒挠,虽然大部分时间用不上,但是真要用起来,还是挺爽的。Python是个了不...

weixin_39902345的博客 99

8 个极其罕见但非常有用的 Python 库——新手零基础必看!

正如我们所看到的,这 8 个 Python 库非主流,但却为各个领域的开发者提供了难以置信的价值。从调试到游戏开发和数据分析,这些库都是可以帮助你事半功倍的强大工具。最后,我精心筹备了一份全面的Python学习大礼包,完全免费分享给每一位渴望成长、希望突破自我现状却略感迷茫的朋友。无论您是编程新手还是希望深化技能的开发者,都欢迎加入我们的学习之旅,共同交流进步!🌟 学习大礼包包含内容:Python全领域学习路线图:一目了然,指引您从基础到进阶,再到专业领域的每一步学习路径,明确各方向的核心知识点。

biancheng_syz的博客 1009

25个对php初学者非常有用的php技巧

在sdk.cn上看到一篇文章,感觉还不错,是一篇译文。 原文链接:https://sdk.cn/news/2840  (文章标题:40+个对初学者非常有用的PHP技巧(一)) 只有25个技巧,第二部分暂时没找到。目录如下: 1.不要使用相对路径,要定义一个根路径 2.不使用require,包括require_once或include_once 3.在应用程序中维护调试环境 4.通过会话...

编程不过是一门失传艺术的别名,这门艺术的名字叫做“思考” 518

HAL库和标准库的区别

总结: HAL 库和标准库都可以实现 STM32 的固件开发,但它们具有不同的抽象级别和设计哲学。HAL 库(Hardware Abstraction Layer,硬件抽象层)和标准库(Standard Peripheral Library,标准外设库,又称为 SPL)都是 STM32 微控制器的固件库。更丰富的文档和教程:由于HAL库是ST官方推荐的库,因此在网络上有大量的文档、教程和示例代码。

Aiden_restart的博客 1万+

STM32初学者,到底选标准库还是HAL库?

如何选择STM32标准库和HAL库

安迪西_嵌入式攻城狮 6795
上一篇: 程序员每天少吃===活120岁
下一篇: 用VC++6.0 编写一个完整的
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值