C/C++学习
文章平均质量分 60
C/C++学习心得
农民真快落
滚烫的理想主义将化作黑夜中的野火,灵魂的欲望便是命运的先知
展开
-
【异常处理】打开chm手册文档时内容全黑,无法正常显示的解决办法
chm手册打开时字体无法正常显示原创 2022-08-24 17:34:39 · 428 阅读 · 0 评论 -
【Linux下C】基于socket的网络记事本软件源码(C_S架构)
代码于大三上学期2020/12/10~2020/12/18 期间完成。由于时间紧张和学识有限,代码定有不足之处,大佬勿笑~????如果需要帮助或有任何建议,加我qq:2287015934文章目录课题核心要求:演示动图(建议[右键->新标签页]食用)涉及的技术:软件架构:代码实现:客户端:服务端:_public.h:makefile联系方式如果有相同课题的同学搜到这篇博客,可以先看下面的演示动图及课题要求,来确认是不是你需要的。如果有课题核心要求:①用户注册②用户登录③编辑记事本④上原创 2021-01-14 13:56:47 · 408 阅读 · 0 评论 -
【Linux下C】Linux下多进程轮流写文件
由于时间紧张和学识有限,代码定有不足之处(后面会抽时间优化)大佬勿笑~????如果需要帮助或有任何建议,加我qq:2287015934文章目录需求实现思路演示动图源码联系方式需求程序中包括两个进程,P1和P2。它们分别向一个文件,轮流写入字符串。例如:P1写入字符串“XXXXXX”,P2写入字符串“YYYYYY”。关键词功能是轮流写入,P1写完后必须P2写,P2写完后必须P1写。实现思路我们利用fork函数可以创建一个子进程,假设我们先让子进程写文件,此时父进程不得写文件,怎么实现呢?l原创 2021-01-14 13:52:26 · 364 阅读 · 0 评论 -
【网络编程】windows下的TCP通信(server/client)
server.cpp#include <iostream>//#include "stdafx.h"#include <winsock2.h>#pragma comment(lib,"ws2_32.lib")using namespace std;int main(){ WSADATA wsaData; if(WSAStartup(MAKEWORD(2,2),&wsaData)){ cout<<"WinSock不能被初始化"; WSACle原创 2020-12-03 04:26:58 · 1898 阅读 · 3 评论 -
个人账本管理系统源码(C++控制台实现)
该系统要求实现一个简单、实用的个人帐本管理程序,主要功能包括帐务收支明细数据的录入、查找、修改、删除、统计、排序等。1、 个人帐务数据由帐务明细条目构成,包括:序号,日期(年、月、日),收支项名称,收支类型(收入/支出),收支金额(正/负数表示收支),备注等。5) 对帐务数据排序(可按日期、名称、金额等排序。7) 帐务统计(根据日期范围,可分别按年、月或日统计收、支、结余总金额,并显示)2) 查找帐务数据(可按序号、日期(年、月、日)、名称、金额等查找)。8) 保存帐务数据到文件中、从文件中读入帐务数据。原创 2019-11-19 19:21:33 · 5706 阅读 · 5 评论 -
【安装配置】在DEV c++ 中如何设置默认的代码模板
工具=>编辑器选项(弹出对话框)=>代码(属性页)=>缺省源(属性页),写入一些代码确定即可(勾选“向项目初始源文件插入代码”)。写好点确定后,Ctrl+N时创建新文件会自动写好你预设的模板。转载于:https://www.cnblogs.com/littlehb/p/10997235.html...转载 2020-10-11 15:45:18 · 3174 阅读 · 0 评论 -
【C语言取反运算符】~2是多少?~-5是多少?
标题的答案:~2=-3~-3=2原理是什么?我们先来看这个程序及输出的结果:容易总结出这样一个结论:~i=-i-1为什么呢?一言以蔽之,~运算符是对i的补码(含符号位)进行取反。2的原码是0000 0010 正数补码是其本身0000 0010取反(含符号位)后补码变成1111 1101 此时补码为负数,换成原码要符号位不变,减去1,再取反,即原码成了1000 0011 即为-3-5的原码是1000 0101 负数的补码是原码符号位不变、取反并+1,因此补码是1111 1011 ,对补码取原创 2020-09-29 13:38:17 · 8068 阅读 · 1 评论 -
helloworld是怎样被一步步编译为可执行文件的?
#include<stdio.h>int main(){printf("helloworld");return 0;}在windows中,C语言代码的编译过程由IDE(如vc6、vs等软件)一键生成了可执行文件,但是我们知道编译过程有以下步骤:预处理、编译、汇编、链接,于是我们可以在linux下用命令来分别执行这些步骤,从而可以查看某步后的内容。1)预处理阶段 gcc -E hello.c -o hello.i预处理阶段主要做的有三件事:1.文件包含 2.条件编译 3.宏原创 2020-07-06 19:52:30 · 499 阅读 · 0 评论 -
【linux下C】动态库与静态库快速入门
为什么要用库:我们在写代码时常用的一些功能,为了避免重复造轮子(每次都从头写),我们会把它编译好放到库中,以供写程序时直接调用,提高开发效率。静态库快速入门:1.新建一个sort.c文件,在其中可以编写一个函数,例如int max(int a,int b),比较a和b哪个大,并返回较大者的值。2.编译函数,并将编译后的文件加入静态库中gcc -c max.c #编译max.c,生成...原创 2020-04-20 10:26:48 · 157 阅读 · 0 评论 -
从零开始的链表之旅【中】(图解链表)
本文旨在摆脱复杂的链表实现代码,从图解的角度一眼看穿链表的结构,同时做一些简要的讲解,让你不再被一些高大上的链表名词吓到,对各种链表结构有个大概的认知。(阅读本文前请先阅读从零开始的链表之旅【上】(基本知识点))动态链表这个图是一个普通的动态链表,所谓的头结点其实没有什么实在意义,只是在定义头指针时一般直接创建一个头结点,让指针有个指向,也可以去掉它,让头指针直接指向首元节点。首元节点是第...原创 2020-02-03 16:02:14 · 201 阅读 · 0 评论 -
malloc最大分配多少字节、内存碎片
malloc最大分配多少字节:试了一下,我的计算机内存是8G,我分配了如图1.82G是可以的,当分配1.83G时,输出了0,说明最大分配约1.8G。关于内存碎片:假设我们只有5M内存,中间有1M被占用,前面2M和后面2M没用,因此我们实际上有4M可用,但是无法分配一片连续的4M,这两块分开的2M内存即为内存碎片。(个人理解)...原创 2020-01-31 19:46:34 · 927 阅读 · 0 评论 -
98行代码实现C语言链表增删查改(注释详细)
#include <bits/stdc++.h> using namespace std;typedef struct NODE { int data; struct NODE *next;}node;node* init_list(){ node* head=(node*)malloc(sizeof(node*)); node* temp=head; for(i...原创 2020-01-30 22:21:09 · 293 阅读 · 0 评论 -
从零开始的链表之旅【上】(基本知识点)
从零开始的链表之旅链表涉及到许多知识点,初学者往往摸不着头脑,本文从链表所涉及到的基础知识开始讲起,力图简单易懂,希望读者有所收获。一、malloc函数1.malloc函数的参数是需要分配的字节数,一般规范化写为sizeof(需要分配的数据类型)2.malloc函数的返回值是分配好的内存的首地址3.例:int *pi=(int *)malloc(sizeof(int)); //分...原创 2020-01-30 15:33:46 · 209 阅读 · 0 评论 -
C++输入输出重定向
以下是我对于C/C++重定向学习的心得体会,若有不周,欢迎指教,感谢!什么是输入输出重定向?stdin指输入数据存储的文件夹,原输入数据来源是键盘,现改变输入数据的来源为path,即重新确定输入数据来源的方向。stdout指输出数据存储的文件夹,原输出数据到屏幕,现改变输出数据的方向为path,即重新确定输出数据的方向。代码:freopen(“path1”,“mode”,stdin);...原创 2019-07-07 11:33:12 · 1474 阅读 · 0 评论 -
【STL学习】vector——动态数组
本文总结一下vector的基本操作。主要包括:vector定义和使用vector定义:包括:默认定义(空数组)、初始化定义、复制定义int类型:vector <int>a;空数组vector <int>a(100); 有100个元素为0的数组vector <int>a(100,5); 有100个元素为5的数组vector <int&...原创 2019-11-24 11:36:48 · 154 阅读 · 0 评论 -
原码、反码、补码——怎样理解它们在数据存储与运算中的作用?!
记得大一时C语言课一开始,老师便介绍了原码、反码、补码以及怎样进行运算,其实也很简单——正数和0的原码、反码、补码是其本身,负数的反码由原码按位取反得到,补码则取反后再加1即可,此外首位作为符号位,0为正,1为负,取反过程中符号位保持不变……也无非是这些罢了。但是为什么要有这些码存在呢?数据又为什么要以补码形式来存储呢?一个字节为什么只能存储-128~127?这些疑惑一直堆积在我的...原创 2019-11-29 21:59:22 · 382 阅读 · 1 评论 -
指针笔记——野指针、数组名、行/列地址
指针:存储空间中每八个位(bit)是一个字节,每一个字节分配一个编号,如编号:006BFF08,这个编号叫做地址,也叫做指针。变量以它占据内存的第一个字节的地址来表示该变量在内存中的地址,例如:int x;printf("%p",&x);输出x的地址,显示为:006BFF08那么x所占的地址则为006BFF08 006BFF09 006BFF10 006BFF11 这四个字节...原创 2019-11-30 12:44:42 · 321 阅读 · 0 评论