草庐IT

跨平台(32bit和64bit)的 printf 格式符 %lld 输出64位的解决方式

问题描述在C/C++开发中,使用printf打印64位变量比较常用,通常在32位系统中使用%lld输出64位的变量,而在64位系统中则使用%ld;如果在32位系统中使用%ld输出64位变量,很可能打印的值是异常的,而在64位系统中则使用%lld,则通常会出现编译报错,类似如:format'%lld'expectstype'longlongint',butargument4hastype'int64_t'[-Werror=format=]如果在跨平台移植代码时,通常就会遇到这种情况。解决方案为了解决跨平台移植的问题,%PRId64的书写方式解决了跨平台的问题,主要是为了同时支持32位和64位操作

C 语言实现一个简单通讯录

前言回顾下C语言基础知识,通过实现一个简单小项目达到复习指针、动态内存、文件操作等基本知识内容文件结构main.cconcat.hconcat.c入口文件main.c#include"concat.c"voidinitMemu(){ printf("*****************************************\n\n"); printf("\t0:exit\n"); printf("\t1:add\n"); printf("\t2:delete\n"); printf("\t3:update\n"); printf("\t4:search\n"); printf("\t5

C 语言实现一个简单通讯录

前言回顾下C语言基础知识,通过实现一个简单小项目达到复习指针、动态内存、文件操作等基本知识内容文件结构main.cconcat.hconcat.c入口文件main.c#include"concat.c"voidinitMemu(){ printf("*****************************************\n\n"); printf("\t0:exit\n"); printf("\t1:add\n"); printf("\t2:delete\n"); printf("\t3:update\n"); printf("\t4:search\n"); printf("\t5

Linux shell 动态条

#!/bin/bash#隐藏光标c_hide_cursor='\033[?25l' #显示光标c_show_cursor='\033[?25h' #函数体timeout(){ #隐藏光标 echo-en"$c_hide_cursor" #这是一个无限循环,如果要定时结束,可以在循环内添加条件. whiletrue;do printf"\b"#删除一个字符 printf"/"#添加一个字符"/" sleep0.1#等待0.1秒 printf"\b|"#删除一个字符,再添加一个字符"|" sleep0.1 printf"\b\\"#"\"反斜杠需要两个反斜杠才能显示 sleep0.1 print

Linux shell 动态条

#!/bin/bash#隐藏光标c_hide_cursor='\033[?25l' #显示光标c_show_cursor='\033[?25h' #函数体timeout(){ #隐藏光标 echo-en"$c_hide_cursor" #这是一个无限循环,如果要定时结束,可以在循环内添加条件. whiletrue;do printf"\b"#删除一个字符 printf"/"#添加一个字符"/" sleep0.1#等待0.1秒 printf"\b|"#删除一个字符,再添加一个字符"|" sleep0.1 printf"\b\\"#"\"反斜杠需要两个反斜杠才能显示 sleep0.1 print

C程序设计(谭浩强)第五版课后题答案 第九章

1.定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。#includestructDate{intyear;intmonth;intday;};intmain(){structDatedate;inti=0,no=0;intMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};printf("请输入日期(年、月、日):");scanf("%d%d%d",&date.year,&date.month,&date.day);no+=date.day;for(i=0;i)no+=Month[i];if(date.year%4==0

C程序设计(谭浩强)第五版课后题答案 第八章

1. 输入3个整数,要求按由小到大的顺序输出。#includeintmain(){inta,b,c,*p_a=&a,*p_b=&b,*p_c=&c;voidf(int*,int*);printf("请输入三个数字:\n");scanf("%d%d%d",p_a,p_b,p_c);if(*p_a>*p_b)f(p_a,p_b);if(*p_a>*p_c)f(p_a,p_c);if(*p_b>*p_c)f(p_b,p_c);printf("数字从小到大排序为:%d%d%d\n",*p_a,*p_b,*p_c);return0;}voidf(int*p_a,int*p_b){intt=*p_a;*p

C程序设计(谭浩强)第五版课后题答案 第六章

1.用筛选法求100之内的素数筛选法:又称为筛法。先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。#includeintma

C程序设计(谭浩强)第五版课后题答案 第九章

1.定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。#includestructDate{intyear;intmonth;intday;};intmain(){structDatedate;inti=0,no=0;intMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};printf("请输入日期(年、月、日):");scanf("%d%d%d",&date.year,&date.month,&date.day);no+=date.day;for(i=0;i)no+=Month[i];if(date.year%4==0

C程序设计(谭浩强)第五版课后题答案 第八章

1. 输入3个整数,要求按由小到大的顺序输出。#includeintmain(){inta,b,c,*p_a=&a,*p_b=&b,*p_c=&c;voidf(int*,int*);printf("请输入三个数字:\n");scanf("%d%d%d",p_a,p_b,p_c);if(*p_a>*p_b)f(p_a,p_b);if(*p_a>*p_c)f(p_a,p_c);if(*p_b>*p_c)f(p_b,p_c);printf("数字从小到大排序为:%d%d%d\n",*p_a,*p_b,*p_c);return0;}voidf(int*p_a,int*p_b){intt=*p_a;*p