20_02_20笔记——《你必须知道的495个C语言问题》

CXL技术入门:从PCIe到高性能计算的桥梁(附最新2.0协议解析) 本文深入解析CXL技术如何作为PCIe的进化版,成为高性能计算的关键桥梁,特别聚焦CXL 2.0协议的关键升级。从技术架构、三大子协议到典型应用场景,全面介绍CXL在缓存一致性、内存共享等方面的优势,帮助开发者快速掌握这一前沿技术。 阅读详情

**《你必须知道的495个C语言问题》笔记
第12章 标准输入输出库

12.1、12.2
getchar()一般情况下返回的是终端输入的字符,但是也可能是负值,因为EOF被定义为-1,所以这样定义是错误的:char c;c = getchar();应该这样定义:int c;c = getchar();
getchar()函数遇到回车或者末尾为EOF(Ctrl+Z)时会结束。

12.4
原型为char *fgets(char *str, int n, FILE *stream);
从流 stream 读取一行,并把它存储在str所指向的字符串内。当读取(n-1)个字符或者换行符,或者到达文件末尾时,它会停止。

12.5 如何在printf的格式串中输出一个’%‘字符?
a:重复两个百分号:%%。因为%本来就是一种转义字符。

12.8 用printf输出long int型必须在格式串中使用l修饰符,r如%ld。

12.9 printf的%f说明符既可以输出float型又可以输出double型,float型会被提升为double型。但是scanf接受指针,通过指针向float存和向double存大小不一样,scanf区别%f和%lf。

12.11 用printf实现可变域宽度,除了使用%8d这种,还可以使用printf(“%*d”,width,x)。星号表示参数列表的一个int值用来表示域的宽度,宽度在输出的值之前。

12.16 为什么这样不行:
short int s;
scanf(“%d”,&s);
a:在转换%d的时候,scanf需要int型指针。要转换成short int应该使用%hd。

12.19 使用“%d\n”调用scanf从键盘读取数字时,\n在scanf格式串中不表示等待换行符,而是读取并放弃连续的空白字符。但是%d也会自动放弃空白,因此不需要加上\n。

12.20 使用scanf和%d读取数字,然后再用gets()读取字符串时。如果先用scanf输入了然后换行,此时的换行符会继续在输出流中,然后被gets读取。

12.21 使用类似于if(scanf(“%d”,&n)==1)这样的语句,scanf转换数字的时候,它遇到的任何非数字字符都会终止转换并被保留在输入流中。

12.24 int sprintf(char *string, char *format [,argument,…]);
原型返回的是int型,作用是把格式化的数据写入某个字符串缓冲区。

12.25 gets输入太长会导致缓冲区溢出,所以fgets较好,且fgets保留’\n‘。

12.27 ftell和fseek用long int型表示文件内的偏移量,有限制范围。而ffgetpos和fsetpos函数使用了一个特殊的类型定义fpos_t来表示偏移量,且大小任意。

12.30 调用文件的函数时,
类似FILE *fp=fopen(filename,’r‘);后面的mode参数必须是字符串,用“r”。

车载以太网-组播 阅读详情

相关推荐

Kali Linux渗透测试:蚁剑(AntSword)三种安装方法与避坑指南

WebShell管理是渗透测试与网络安全攻防演练中的关键技术环节,它允许安全人员在获得初步访问权限后,对目标系统进行文件管理、命令执行和数据库操作等深度控制。其核心原理是通过在Web服务器上植入特定脚本,建立一条隐蔽的远程管理通道。在实战中,一个高效、稳定的WebShell管理工具能极大提升后渗透阶段的工作效率与成功率。蚁剑(AntSword)作为一款功能强大的国产开源工具,凭借其插件化架构和图形化界面,成为众多安全研究人员的首选。本文将聚焦于如何在渗透测试专用操作系统Kali Linux上部署蚁剑,详细对

weixin_34413103的博客 414

20_02_14笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第6章 数组和指针 6.1 我在一个源文件中定义了char a[6],在另一个源文件中声明了extern char *a。为什么不行? a:在一个源文件定义了字符串,而在另一个文件中定义了指向字符的指针。extern char *a的声明不能和真正的定义匹配。应使用extern char a[]。 6.2 在C语言中“指针和数组等价”到底是什么意思? a:大...

please_fix_的博客 248

BUCK 电路详解

参考内容: 手撕Buck!Buck公式推导过程 电力电子的基础应用 《精通开关电源设计(第二版)》 Buck电源芯片输出有问题?检查这几样 原来PWM这么简单! BUCK 电路构建 根据高中所学习的物理知识可以很容易的想到,使用一个滑动变阻器即可实现降压和稳压的效果。当负载波动时,通过改变滑动变阻器的阻值,可以调节负载所获得的电压。但是使用滑动变阻器的劣势也很明显,大量的耗能会导致器件温度快速升高。 上面所提到的电路主要缺点在于导通器件(变阻器或三极管)本身存在耗能,那么有没有不会耗能的导通器件呢?

Guanngxu的博客 3985

20_02_16笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第7章 内存分配 第8章 字符和字符串 7.23 malloc有bug导致程序总是崩溃? a:malloc的内部数据结构哦很容易被破坏。标准C之前的常见情况:1.向分配的空间写入比分配的空间更多的数据;2.使用已经释放了内存的指针;3.分配大小为0的对象;4.重分配空指针;5.释放未从malloc获得的指针、空指针或者已经释放的指针。 7.24 为什么在调用...

please_fix_的博客 253

基于matlab的CNN物体识别物体分类系统

主要对物体进行识别,搭建一个物体分类系统本次实验选择规模稍大的 CIFAR-10 数据集进行分类识别,对应图像的大小设计 VggNet、ResNet 进行网络训练。在实际操作过程中,受限于数据规模和硬件配置,对于大小放缩、批次参数、训练步数等进行了多次调试,这也对以后的图像分类任务具有较高的参考意义,并通过对 CIFAR-10 数据集进行训练和评测,采用网络修改的方式来得到新的 CNN 结构,适用于对网络进行配置、融合等相关研究。读者可以通过自行设计或选择其他网络、加载其他数据等方式进行实验的延伸。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2005

使用MATLAB和Simulink来创建一个智能家居照明控制系统的仿真模型

智能家居中的智能照明控制系统旨在通过自动化手段优化家庭照明,提高能源效率和居住舒适度。这通常涉及传感器(如光敏传感器、运动传感器)、控制器(如微控制器或PLC)以及执行器(如调光器或开关)。在这个教程中,我们将使用MATLAB和Simulink来创建一个智能家居照明控制系统的仿真模型。

xiaoheshang_123的博客 219

20_02_19笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第11章 ANSI/ISO C 11.1 什么是“ANSI C”? a: 1978年,《C程序设计语言》的第一版出版,书中介绍的C语言标准也被称作“K&R C” 1989年,美国国家标准协会(ANSI)创立了一套C的标准,即ANSI C,或C89。1990年,将C89稍微改动,变成了ISO C或叫做C90。 2000年,ANSI 发布新的C标准C99...

please_fix_的博客 289

LangGraph教程8:LangGraph流式处理

流式处理可显著提升基于LLM应用的响应性。LangGraph支持两种流式模式:values模式返回每一步的完整结果,适合需要完整上下文处理的场景;updates模式仅返回增量变化,适用于实时更新需求。示例代码展示了如何用create_react_agent实现这两种模式,其中values模式完整记录处理流程,updates模式逐步输出结果。通过异步迭代输出流,开发者可以灵活选择适合应用场景的流式处理方式。

Cachel Wood的博客 620

20_02_15笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第67章 内存分配 7.1 为什么以下代码不行? char *answer; printf(“Type somrthing:\n”); gets(answer); printf(“You typed “%s”\n”, answer); a:指着answer未初始化,他可能指向任何位置或者为空指针。 7.2 以下代码: char *s1 = “hello,”;...

please_fix_的博客 245

AutoSAR MemMap模块概述及配置参数详解

这个模块是干啥的?它是用来配置Memory Mapping and Compiler Abstraction module。

4508

国科大学习资料--人工智能原理与算法-第六次作业解析(学长整理)

国科大学习资料–人工智能原理与算法-第六次作业解析(张文生老师主讲)(6.6、6.7、6.11) 6.6 说明如何通过使用辅助变量把诸如A+B=C这样的三元约束转变成三个二元约束。假设值域是有限的。(提示:考虑引进新变量表示变量对的值,引进约束如“X是Y变量对中的第一个元素”。)然后说明如何把多于三个变量的约束类似地转换为二元约束。说明如何通过改变变量的值域来消除一元约束。这就完整演示了任何CSP都可以转变为只含二元约束的CSP。 答:首先,我们引入一个新变量AB,假设A和B的范围均为N,AB的范围为N×N

无名何许人的博客 2870

20_02_21笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第12章 标准输入输出库 第13章 库函数 12.35 C语言中可通过freopen函数实现文件的重定向,即把一个打开的文件,重定向到另外一个文件上。 freopen是头文件<stdio.h>中的一个函数,用于重定向输入输出文件。该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证文件是可靠的。 函数原型 FILE *freope...

please_fix_的博客 166

LVGL在单色屏上运行

本文主要讲述LVGL在单色屏应用中的实现思路,并已验证通过。网上关于lvgl移植的文章有很多了,本文不加以赘述。

weixin_43278295的博客 4462

20_02_10笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 2.12 怎样从/向数据文件读/写结构? 最简单: fwrite(&somestruct,sizeof somestruct,1,fp); 有fwrite原型: fwrite((char *)somestruct,sizeof somestruct,1,fp); 可移植性: 写一对函数,按域读写。 2.13 编辑器在内存中留下了空洞?怎么控制对齐方式...

please_fix_的博客 159

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

20_02_18笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第10章 C预处理器 10.12 #if是条件编译,后不能加变量,它在程序编译前执行。 #if 表达式 #endif 意思是如果if后面的表达式不为0的话就编译#if和#endif之间的语句,否则就不编译。 10.13 sizeof操作符可以用在#if预处理指令中吗? a:因为预处理是在编译过程之前进行,此时还没有对类型等数据进行分析。 10.20 宏定义中...

please_fix_的博客 147

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

20_02_17笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第9章 布尔表达式和变量 第10章 C预处理器 9.1 在 C 语言标准(C89)没有定义布尔类型,所以 C 语言判断真假时以 0 为假,非 0 为真。现在普遍使用C99,所以此章节不具有参考价值。 10.1~10.5 #define 10.6~10.11 #include 10.12~10.19 #if 10.20 ~10.25 宏替换 10.26~10....

please_fix_的博客 215

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

20_02_13笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第5章 空指针 5.1 空指针是什么? a:空指针不会指向任何地方,不是任何对象或函数的指针。所以它不同于未初始化的指针。 5.2 怎样获得一个空指针? a:在初始化、赋值或比较的时候,若一边是变量或指针类型的表达式,编译器可以确定另一边的常数0为空指针并生成正确的空指针。 5.3 用缩写的指针比较“if(p)”检查空指针是否有效?如果空指针的内部表达不是...

please_fix_的博客 160

20_02_12笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 4.3 *p++自增p还是p所指向的变量? a:++优先级高于(星号),p++和(p++)等价,他自增p并返回p自增前所指向的值。 4.4 C语言中的指针算术总是自动地采纳它所指向的对象的大小,所以访问的时候不需要使用+sizeof(类型)的方法。 4.5 我有一个char*型指针碰巧指向一些int型变量,我想跳过他们,为什么((int *)p)++;这样的...

please_fix_的博客 164

20_02_23笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第15章 可变参数列表 15.1 为什么调用printf之前必须要包含<stdio.h>? a:调用可变参数前,它的原型说明必须在作用域内,编译器由此知道要用可变参数调用机制。在原型说明中用省略号“…”来表示可变参数。 15.2 为什么%f可以在printf参数中同时表示float和double?难道它们不是不同类型? a:可变参数的可变部分使用...

please_fix_的博客 220

20_02_11笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 3.1 这样的代码为什么不行?a[i]==i++。 i++会改变i的值,i在同一表达式的其他地方被引用,无法判断该引用是新值还是旧值。 3.8 为什么表达式printf("%d %d",f1(),f2());先调用了f2? 逗号分隔得函数参数不是逗号操作符,函数调用的参数的求值顺序是不确定的。 3.13 ++i和i++的区别? 简单说:++i在i存储的值上增...

please_fix_的博客 159

20_02_22笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记 第14章 浮点运算 14.1 大多数电脑都是用二进制来表示浮点数和整数。十进制数0.1用二进制表示起来是一个循环小数0.0001100110011…大多数十进制小数用二进制表示的并不完全准确。 14.5 比较两个浮点数最好的方法就是要利用一个与浮点数的量相关的精确阈值(如0.00001)。 试了一下,现在的c语言中,不能直接使用epsilon。 14.6 直...

please_fix_的博客 151

《你必须知道的495个C语言问题》知识笔记及补充

1. extern在函数声明中是什么意思? 它可以用作一种格式上的提示表明函数的定义可能在另一个源文件中,但在 extern int f(); 和 int f(); 之间并没有实质的区别。 补充:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。也就是说extern有两个作用: ...

GarfieldEr007的专栏 908

《你必须知道的495个C语言问题》笔记--库函数

怎样把数字转为字符串(与atoi相反)?有itoa函数吗? 用sprintf就可以了: sprintf(string, "%d", number);同理,也可以同sprintf把long型或浮点型转换成字符串(使用%ld或%f),也就是说,可以把sprintf看成是atol或者atof的 反函数。 怎样在日期上加n天?怎样取得两个日期的时间间隔? 第一个问题,mktime接受没有

TODD911的专栏 2107

《你必须知道的495个C语言问题》笔记

1.10 对于没有初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为 “零”, 它可否作为空指针或浮点零? 答: 具有 “静态” 生存期的未初始化变量 (即, 在函数外声明的变量和有静态存储类型的变量) 可以确保初始值为零, 就像程序员键入了 “=0” 一样。 因此, 这些变量如果是指针会被初始化为正确的空指针, 如果是浮点数会被初始化为 0.0 (或正确的类型, 参见第 5 章)...

weixin_34062469的博客 199

《你必须知道的495个C语言问题》读书笔记之第15-20章:浮点数、风格、杂项

一、可变参数列表 1. Q:为什么调用printf前必须要包含<stdio.h>? A:为了把printf的正确原型说明引入作用域。例如,如果可变参数的调用比固定参数的调用效率低,编译器就可能这样做。所以在调用可变参数的函数前,它的原型说明必须在作用域内,编译器由此知道要用可变参数调用机制。 2. Q:怎样写一个接受可变参数的函数? A:用&lt...

114

20_02_25笔记

《你必须知道的495个C语言问题》笔记 第17章 风格 17.4 一个很实用的小技巧,if语句判断时,用if(0x)而不是if(x0)这样可以避免将等号写成赋值号。因为if(x=0)这样的语句编译器并不会报错。 17.5 printf函数的原型为: int printf(const char *format, …);函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。 ...

please_fix_的博客 147
上一篇: 20_02_19笔记——《你必须知道的495个C语言问题》
下一篇: 20_02_21笔记——《你必须知道的495个C语言问题》
please_say_d
博客等级 码龄7年 13粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值