
C/C++
马踏岛国赏樱花
Many leaves,one tree.
展开
-
fatal error: gmp.h: 没有那个文件或目录
在安装HEAAN全同态加密库时遇到的问题,尝试了网上的很多方法去安装gmp.h文件都失败了。命令:sudo apt-get install libgmp-dev。最后发现linux中的lib库中有gmp头文件。原创 2022-10-01 10:05:55 · 2526 阅读 · 1 评论 -
C语言字符串和字符串数组的输入赋值
文章转自:https://blog.youkuaiyun.com/shazhoulada1/article/details/45012921 版权归原作者**1、字符串指针一定要开辟空间后在做输入**char * str; str=(char*)malloc(100*sizeof(char)); scanf("%s",&str);**2、字符串数组要做初始化的开辟空间后再来存储...转载 2018-09-26 17:08:40 · 9686 阅读 · 0 评论 -
从文件中读取截取字符并对截取的字符进行排序
#include "stdio.h"#include "stdlib.h"int main(void){ char pathname[50], c_read[5]; int arr[200]={0}; char char_read; FILE *fp; printf("Input the file path:"); scanf("%s", pathname);//获取文件位...原创 2018-11-21 14:09:21 · 433 阅读 · 0 评论 -
popenhan
函数原型: #include “stdio.h” FILE popen( const char command, const char* mode )参数说明: command: 是一个指向以 NULL 结束的 shell 命令字符串的指针。这行命令将被传到 bin/sh 并使用 -c 标志,shell 将执行这个命令。 mode: 只能是读或者写中的一种,得到的返回值...转载 2019-01-04 13:42:50 · 120 阅读 · 0 评论 -
获取Linux内核源码(以Ubuntu为例)
用Linux系统后总会对自己编译Linux内核跃跃欲试,完全压抑不住内心的好奇心,所以找时间总结了下方法。1.先看用cat /etc/apt/sources.list查看是否添加了deb-src项。去掉“#”即可。2.使用apt search linux-source查看下版本。3.使用apt install linux-source-4.4.0安装,安装后再/usr/src目录下。...原创 2019-01-24 18:00:20 · 2231 阅读 · 0 评论 -
筛选素数算法
转载关于素数的算法是信息学竞赛和程序设计竞赛中常考的数论知识,在这里我跟大家讲一下寻找一定范围内素数的几个算法。看了以后相信对大家一定有帮助。正如大家都知道的那样,一个数n如果是合数,那么它的所有的因子不超过sqrt(n)--n的开方,那么我们可以用这个性质用最直观的方法来求出小于等于n的所有的素数。num = 0;for(i=2; i<=...转载 2019-03-29 15:00:15 · 4813 阅读 · 2 评论 -
scanf的使用 输入值求面积和体积实例
闲着无聊的时候有个小学生问了一个编程题,原题如下:用scanf输入半径r和高h求圆锥的面积和体积输出结果保留两位小数。本来以为是很简单的题的,结果做好后在小侄子的手残输入的参数下异常频繁啪啪打脸。。。(此次省略内心活动100字)下面贴上修改后的版本和原版。#include <stdio.h>#include <math.h>#define Pi 3...原创 2019-03-22 21:10:46 · 1853 阅读 · 0 评论 -
a+=b什么意思?
在C/和C++中 a+=b;其实就是a=a+b;的简写,类似的还有*=、/=、%=、-=。在java中a+=b这种写法的好处是当a和b的类型不同时可以强制转换,转成与a相同(可以自己试下)...原创 2019-03-22 22:29:13 · 40053 阅读 · 0 评论 -
下载C语言标准库源码
进入到GNU的ftp:http://ftp.gnu.org/gnu/glibc/找到glibc-2.29.tar.gz下载即可,如果实在windows 下直接使用WinRAR解压即可,Linux下使用tar -xzvfglibc-2.29.tar.gz解压。...原创 2019-05-02 16:52:56 · 15199 阅读 · 0 评论 -
float的有效位
之前无意间做对比的时候发现对float的精确的理解有误,特此总结。float的有效数字是6位,第7位不一定有效,前6位一定有效。#include <stdio.h>int main(){ float a=1.2345668; printf("a=%f\n", a); return 0;}运行结果是1.234567【注:不同编译器运行结果...原创 2019-05-11 12:59:53 · 8296 阅读 · 1 评论 -
指针数组和数组指针区别详解
int(*p)[4],这个就是行指针这种类型的指针p是指向一个一维数组,这个一维数组包含4个整形元素但是 int a[4];p=a; 这种方式却是不对的因为p只能指向一个整型的一维数组,不能指向一个整型数据,a所指向的正是a[0],是个整型数;实际上int(*p)[4]这种类型的指针是用于多维数组中的,比如定义一个二维数组int b[3][4],就可以这样赋值p=&b[0],使p指...转载 2019-06-23 11:43:13 · 156 阅读 · 0 评论 -
__LINE__ __FUNCTION__用法
__LINE__, 行号__FUNCTION__ 函数用法:可以用于程序错误时打印错误位置printf("行号:%d 函数名:%s \n", __LINE__, __FUNCTION__);原创 2018-08-20 13:59:01 · 20463 阅读 · 3 评论 -
fopen 详解
函数原型:FILE * fopen(const char * path,const char * mode); 相关函数:open,fclose,fopen_s,_wfopen 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中 参数说明: 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 ...原创 2018-07-13 08:57:05 · 20167 阅读 · 0 评论 -
fwrite fread用法详解
C 库函数 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) 把 ptr 所指向的数组中的数据写入到给定流 stream 中。声明下面是 fwrite() 函数的声明。size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *strea...原创 2018-07-12 16:46:53 · 4524 阅读 · 0 评论 -
数据在内存中存储的问题以int类型数据为例
对于一个c语言编写的程序,一个int类型的数据,在内存中是如何存储的。例如:int类型的1在内存中占用4个字节,那这4个字节具体怎么存储呢?目前市面上大部分书籍说的都是数字的字节表示形式,按照二进制的方式进行存储。学生就理所当然的认为是按照下面方式进行存储的。第1字节 第2字节 第3字节 第4字节0000...转载 2018-06-13 15:24:34 · 442 阅读 · 0 评论 -
C++ string
C++之string类型详解 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个泛型类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 C++中对于stri...转载 2018-06-07 15:50:55 · 161 阅读 · 0 评论 -
C++ basic_string
basic_string 类 Visual Studio 2015 其他版本 Visual Studio 2013 Visual Studio 2012 若要了解有关 Visu...转载 2018-06-07 15:54:38 · 7952 阅读 · 1 评论 -
C memcmp
memcmp memcmp是比较内存区域buf1和buf2的前count个字节。该函数是按字节比较的。函数原型int memcmp(const void *buf1, const void *buf2, unsigned int count);功能比较内存区域buf1和buf2的前count个字节。所需头文件#include <string.h>或#include<memory....转载 2018-06-07 15:59:25 · 617 阅读 · 0 评论 -
C open()函数
open函数#include <fcntl.h>int open(const char *pathname, int oflag, ... /* mode_t mode */);open函数用来打开或创建一个文件,若成功返回文件描述符,否则返回-1。pathname是要打开或创建文件的名字。oflag参数是下列一个或多个常量执行按位或运算的结果杀O_RDONLY 只读打开O_WRON...转载 2018-06-15 11:15:20 · 37291 阅读 · 1 评论 -
C strstr()函数
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。语法strstr(string,search);参数 描述string 必需。规定被搜索的字符串。search 必需。规定所搜索的字符串。提示注释:search若是数字,所搜索的将是该数字(作为ASCII码)代表的字符。注释:该函数是二进制...原创 2018-06-19 18:39:49 · 3726 阅读 · 0 评论 -
C fread()函数
freadfread是一个函数,它从文件流中读数据,最多读取count个项,每个项size个字节,如果调用成功返回实际读取到的项个数(小于或等于count),如果不成功或读到文件末尾返回 0。函数原型size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;参 数buffer 用于接收数据的内存地址size 要读的...原创 2018-06-19 18:42:22 · 44610 阅读 · 0 评论 -
popen() 函数用法 以判断ping是否成功为例
函数原型: #include “stdio.h” FILE popen( const char command, const char* mode )参数说明: command: 是一个指向以 NULL 结束的 shell 命令字符串的指针。这行命令将被传到 bin/sh 并使用 -c 标志,shell 将执行这个命令。 mode: 只能是读或者写中的一种,得到的返回值(标准 I/O 流)...原创 2018-06-19 18:50:47 · 5159 阅读 · 0 评论 -
execlp()函数
Linux C 调用 ping命令 检测网络状态1234567891011121314151617181920212223242526272829303132333435363738int ping_status(char *ip){ int i, status; pid_t pid; printf(">>>>>>>>>>...转载 2018-06-19 18:51:49 · 3754 阅读 · 0 评论 -
野指针的产生及解决方法
1.会产生野指针的做法#include <stdio.h>//这就是一种错误的写法int main(){ int *p = NULL; p = (int *)malloc(4); //释放P所指向的内存空间,但指针变量p仍然留在栈中,成为了野指针 if (p != NULL){ free(p); } ...转载 2018-07-06 09:18:24 · 2529 阅读 · 0 评论 -
常用变量的字节数
和机器字长及编译器有关系: 所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short int至少应为16位(2字节) 4 long int至少应为32位。 ...转载 2018-06-12 13:04:12 · 5256 阅读 · 0 评论