C语言
qq_45700917
这个作者很懒,什么都没留下…
展开
-
文件指针错误error: initializer element is not constant
文件指针错误error: initializer element is not constant今天写代码的时候碰到了这个问题,上网查了好久才解决,忘了在哪看的了,但是解决途径总结了下来。代码是这样的: #include <stdio.h> #include <stdlib.h> FILE * outputA = fopen("/home/a.txt", "rb"); FILE * outputB; FILE * input; int main() {原创 2021-03-20 22:24:39 · 615 阅读 · 0 评论 -
vector可以索引访问但不能索引赋值
vector可以索引访问但不能索引赋值vector<int> s1; for(i=0;i<10;i++) { s1[i] = i; //严重错误,s1中不包含任何元素。 }转载的原文链接:https://blog.csdn.net/lyj156/article/details/79480143转载 2021-01-13 17:26:39 · 623 阅读 · 0 评论 -
2021-01-09
彻底弄懂typedef struct和struct定义结构体的区别转载的,原文如下:版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/qq_41139830/article/details/88638816...转载 2021-01-09 15:13:47 · 83 阅读 · 0 评论 -
C语言将一个数转换成小数,输出结果为零
将一个数转换成小数,输出结果为零今天在处理数据的时候,有一个需求:将一个整数,比如77000,单位纳秒(10^-9秒)换算成秒,然后保留10位小数。代码:printf( "%d", (unsigned int(item2 & 0x003fffff)/1000000000));输出:很明显就是错了,为啥全部都是零呢?因为在转换成unsigned int 的时候,忽略了小数部分,就像:int a = 10 / 3;printf("%d",a);输出的结果是3,而没有小数,同样的原创 2020-12-18 21:41:18 · 4877 阅读 · 1 评论 -
C语言保留两位小数
不用库函数也能保留两位小数https://blog.csdn.net/qq_35040828/article/details/78377936?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBai转载 2020-12-17 20:47:42 · 8474 阅读 · 2 评论 -
C语言将秒数转换成时分秒的形式
C语言将秒数转换成时分秒的形式比较简单,直接上代码: 1 #include <stdio.h> 2 3 int main(int arc,char *argv[]) 4 { 5 printf("%s\n",argv[1]); 6 int n = atoi(argv[1]);//字符串转整型 7 printf("%d\n",n); 8 int hour = 0; 9 int minute = 0; 10 int原创 2020-12-11 16:41:10 · 15973 阅读 · 1 评论 -
linux 下C语言:在命令行传参数
linux 下C语言:在命令行传参数最近因为要实现代码灵活处理数据,想每次运行处理不同的数据,即每次运行之前都要传不同的参数进去。这我就纳闷了:程序写在.c文件里面,退出来在命令行输入命令运行,怎么能实现传递参数呢?问了师兄,才知道,在Linux下命令行是可以直接传递参数的。传递参数得有个接口吧,接口在哪呢?就在main()函数!其实呢,main()函数的默认写法是这样的:int main(int arc,char *argv[]){ ……}也就是说,它是有参数可以传进去的,这就是留给命令原创 2020-12-11 16:37:39 · 4344 阅读 · 1 评论 -
sh: 1: pause: Permission denied,可能是文件打开问题
sh: 1: pause: Permission denied,可能是文件打开问题程序如下,运行报错 output = fopen("/home/1.ODF","rb"); input = fopen("/home/1.txt", "w"); if(output==NULL) { printf("文件开始写入"); } if (input == NULL) { printf("无法打开文件"); return -1;原创 2020-12-10 10:40:49 · 360 阅读 · 0 评论 -
Linux C语言error: initializer element is not constant
Linux C语言error: initializer element is not constant初始化文件指针如下,编译报错 FILE* input = fopen("/home/h/OD/OD_file/1.txt","rb"); FILE* output = fopen("/home/h/OD_decoding_code/205.txt", "w");error: initializer element is not constant解决方法:将初始化放在全局,赋值放在main函数里面原创 2020-12-09 19:48:33 · 695 阅读 · 1 评论 -
Linux下数据类型强转
Linux下数据类型强转代码是在windows下写好的,放到Linux上来运行,结果出现了一些问题:比如:(long long(change_int(c3_table.item15_19[0])) << 32)会报错:error: expected ‘)’ before ‘change_int’Linux系统下强转数据类型要求比较严格,需要将long long左右都用括号括起来。...原创 2020-12-09 16:39:42 · 430 阅读 · 0 评论 -
Linux下C语言关于struct报错:nuknown type name
Linux下C语言关于struct报错:nuknown type namestruct ODF3C_TABLE { unsigned int time_tag; int item2_3; int item4; int item5; unsigned int item6_14; int item15_19[2]; int item20_22[2]; }c3_table;void write3C(ODF3C_TA原创 2020-12-09 16:30:16 · 934 阅读 · 0 评论 -
gcc:error:No such file or directory
gcc:error:No such file or directory今天在Windows上写好了代码,复制到Linux上进行测试。步骤如下:第一步:vim a.c //新建一个C语言的程序,复制到里面第二步:gcc -o a.c a //编译刚才的代码,报错:“No such file or directory"第三步:懵逼。。。。。。上网查了好多,其中有说没有下载32位的什么的,按照这个方法却不行,因为下载的命令需要用到sudo,而很遗憾我是远程连接人家的服务器,不在sudoer之内,所原创 2020-12-09 11:14:19 · 15934 阅读 · 3 评论 -
strtok()函数用法及注意事项详解
strtok()函数用法及注意事项详解遇到了分隔字符串并输出的问题,看了这个博文,很有收获,大佬博文链接如下:https://blog.csdn.net/sxy19930313/article/details/78548174转载 2020-11-30 22:02:31 · 176 阅读 · 0 评论 -
两个整型(负数的情况)合并成一个小数
两个整型(负数的情况)合并成一个小数上一篇挖了一个坑,说当两个负数合并成一个小数的时候需要注意,现在来填坑。如果按照上一篇的代码,合并两个负的整型代码: char observable[25]; double b; sprintf(observable, "%d.%d", item1,item2); sscanf(observable, "%lf", &b);结果:也就是说,负数部分全部是0;为什么呢,因为负数有一个负号啊,得先把负号去掉才行。代码(注意,在item2前面原创 2020-11-23 20:36:52 · 359 阅读 · 0 评论 -
C语言将两个数合并成一个小数
C语言将两个数(int、unsigned int)合并成一个小数(double、float)今天碰到一个问题:需要将两个无符号整型合并成一个小数输出。输出的数的数据类型需要根据前面两个无符号整型合并起来的数据大小确定,如果float足够那就float,不够就double。思路:1、先将两个数组成一个字符串2、将字符串转换成float型3、输出这个数代码: char observable[25]; double b; sprintf(observable, "%d.%d",item1,i原创 2020-11-23 20:10:57 · 3556 阅读 · 0 评论 -
C语言结构体对齐
结构体对齐今天又解码一个二进制文件,又遇到了问题,事情是这样的:读取一个字段,我用一个结构体来接收这些数,然后逐个处理,但结果却不对。我用二进制读取软件读取这个文件,与处理出来的结果对比发现:处理出来的数据竟然跳过一个4字节,也就是说,我处理出来的数据里面没有原始二进制文件中的对应的那4个字节。师兄又来了,print一下结构体的大小,发现是40个字节,而我取的是36字节。多出来的4字节是哪里来的呢,这个时候师兄突然想到了结构体对齐这个东西。先上一段我自己的代码:struct C_TABLE{ u原创 2020-11-19 19:09:34 · 196 阅读 · 0 评论 -
if判断的时候,程序不报错,但输出结果不对
if判断的时候,程序不报错,但输出结果不对其中的一个可能的原因是:判断语句中少加了等号如:if (a= b),这样不报错,但结果不对。应该是if(ab)。赋值(=),等于()。...原创 2020-04-09 17:21:12 · 2099 阅读 · 0 评论 -
bitset的用法:输出二进制的数据
bitset的用法:输出二进制的数据又是今天,我又在解码一个二进制文件,又遇到了问题:我处理出来输出的数据和预想的不一样。师兄教我用bitset,可以输出这个二进制数据,通过比对就知道自己处理的是不是这段数据了。代码: bitset<64> a(re_item15_19); cout << "item15_19=" << a << endl;当然bitset是需要加头文件的: #include<typeinfo>具体原创 2020-11-19 17:05:30 · 554 阅读 · 0 评论 -
typeid().name()可以输出数据类型
typeid.name查看数据类型今天解码一个二进制文件,其中有一个字段长12个字节,这12个字节的数据总共包含了十几个数(按不同的位来分的,有的3位,有的7位……加起来96位),有几个数据是拼接在一起的,长度为8个字节。我就想当然用两个int型去拼成一个long long型的数据,之后再对它进行处理。但是不知道为啥出错了,出来的数据并不是预想的那样。师兄知道我代码有问题,啪的一声就起来了,很快啊,就坐到我的位置上了。我大意了啊,没有闪,上来就加入了typeid的头文件——#include,然后一个pr原创 2020-11-19 16:56:59 · 941 阅读 · 0 评论 -
警告makes pointer without a cast 、return makes pointer from integer wiyhout a cast 和control reaches en
警告makes pointer without a cast 、return makes pointer from integer wiyhout a cast 和control reaches end of non-void function怎么修改炒菜葱姜蒜先下锅,学习之前先讲个冷笑话:往年十一和中秋都是分开过的,而今年十一和中秋在同一天过了。按理说十一7天假,中秋3天假。7+3=10,但是今年只有8天假。一天内节日的数量增加了,但是假期天数没有增加。这是为什么呢?(预知原因如何,且听文末分解,原创 2020-10-14 19:43:53 · 6874 阅读 · 0 评论