C++11 QtCreator:长整数未正确读入变量

     2023-02-17     134

关键词:

【中文标题】C++11 QtCreator:长整数未正确读入变量【英文标题】:C++11 QtCreator: long integer not correctly read into variable 【发布时间】:2016-11-26 15:23:43 【问题描述】:

我有一个 Node 类型的单链表,定义如下:

struct Item 
    long date;
    bool isPaid;
;
struct Node
    Item item;
    Node* next;
;

其中“日期”是一个采用“ddmmaaaa”形式的字段(即,前两位数字表示日期,后两位数字表示月份,后四位数字表示年份)。 但是,当我尝试添加几个节点时,我插入了一个不同的数字:

newItem=new Node;
newItem->item.date=01062016;
newItem->item.isPaid=true;
newItem->next=nullptr;
list=insertItem(list, newItem);

(insertItem 是我的函数,它接受一个指向列表头的指针和一个指向新节点的指针并将该节点插入到列表中)。

如果我尝试将类似 13042016 的内容分配给长字段,我会得到正确的数字:

但是,当我尝试分配 01062016 时,我得到了 287758:

我不想使用不同的方法(我知道日期很奇怪,我只是需要这种方式)。只是为了理解为什么当我添加一个完全适合长变量的日期时会得到奇怪的数字。 我正在使用基于 Qt 5.1.0 的 Qt Creator 2.7.2。

【问题讨论】:

long 用作类型是错误的。如果您知道自己需要 64 位,请使用 qint64int64_t。基本上,如果int 不能削减它,您需要使用给定尺寸的便携式类型。 【参考方案1】:

因为010620160 开头而不是0x 因此它是一个八进制数,它与十进制的287758 等价。

见Integral Literal:

octal-literal 是数字零 (0) 后跟零个或多个八进制数字 (0, 1, 2, 3, 4, 5, 6, 7)

【讨论】:

c++11新特性:变长参数模板详解(代码片段)

这里写目录标题C++11变长参数模板变长函数参数包如何解参数包sizeof()获得函数参数个数递归模板函数变参模板展开结论C++11变长参数模板在C++11之前,无论是类模板还是函数模板,都只能按其指定的样子... 查看详情

在 case 块中声明变量时,C++11 未正确执行 switch

】在case块中声明变量时,C++11未正确执行switch【英文标题】:C++11isnotexecutingswitchcorrectlywhenvariableisdeclaredincaseblock【发布时间】:2021-12-1312:24:11【问题描述】:考虑下面的sn-p。如果我用GCC/C++11编译它,那么我希望如果我用例如调... 查看详情

程序c语言中基本数据类型(字符、整数、长整数、浮点)

C语言程序语言中基本数据类型(字符、整数、长整数、浮点);第2章数据类型、运算符与表达式本章主要介绍C语言的各种数据类型、运算符和表达式。2.1C语言的数据类型C语言的数据类型具体分类如下:基本类型:分为... 查看详情

在c语言中若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是?

...有说明语句:inta,b,c,*d=&c:,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是scanf("%d%d%d"&a,&b,)。seanf()函数有两个参数,第一个参数是输入格式字符串,第二个参数是输入变量地址列表。输入格式字符... 查看详情

SSIS 未正确从 Excel 导入 TEXT 列(整数导致 NULL 值)

】SSIS未正确从Excel导入TEXT列(整数导致NULL值)【英文标题】:SSISnotimportingTEXTcolumnfromExcelcorrectly(integerresultsinNULLvalue)【发布时间】:2010-11-1208:56:30【问题描述】:我有通过SSIS导入SQL2008R2的Excel2003文件。在其中一个专栏中,我遇... 查看详情

如何使 qtcreator 与 c++11 一起工作

】如何使qtcreator与c++11一起工作【英文标题】:Howtomakeqtcreatorworkwithc++11【发布时间】:2017-05-0918:21:59【问题描述】:我正在尝试让学校项目在本地运行,但我一直在使用qtcreator和c++11时遇到问题。编译器一直说它不能使用c++11的... 查看详情

地形上的 C++ DirectX11 纹理未正确渲染

】地形上的C++DirectX11纹理未正确渲染【英文标题】:C++DirectX11TextureOnTerrainNotRenderingProperly【发布时间】:2017-11-0121:05:15【问题描述】:我正在使用Rastertek教程开发游戏引擎。我的问题是地形纹理没有正确加载。像素着色器:Textur... 查看详情

如何在 64 位 Perl 中解压缩(64 位)无符号长整数?

】如何在64位Perl中解压缩(64位)无符号长整数?【英文标题】:Howtounpack(64-bit)unsignedlongin64-bitPerl?【发布时间】:2011-03-3015:35:01【问题描述】:我正在尝试解压缩通过SysV::IPC从C程序传递到Perl脚本的无符号长值。已知该值是正确... 查看详情

QT 调试器显示不正确的变量值(假而不是真)

...【发布时间】:2016-09-2004:43:50【问题描述】:我正在使用QTCreator3.5.1。我有QT5.5.1(MSVC2013,32位)。修订版e548635a24。我还安装了适用于Windows/CDB的调试工具,并被QTCreator 查看详情

NSSortDescriptor 未正确排序整数

】NSSortDescriptor未正确排序整数【英文标题】:NSSortDescriptornotsortingintegerscorrectly【发布时间】:2012-03-2722:13:18【问题描述】:我正在尝试按日期然后开始时间排序。开始时间是从午夜开始的几分钟。因此,如果开始时间-(NSFetchedRe... 查看详情

部分标题标签中的长文本未正确显示

】部分标题标签中的长文本未正确显示【英文标题】:LongTextinLabelofSectionHeaderisnotshowingcorrectly【发布时间】:2019-04-1007:27:57【问题描述】:我在问题/答案应用程序的表格视图标题部分中有一个textLabel。当用户点击问题时,会显... 查看详情

c语言中的格式占位符

...个浮点值(仅C99有效)  %c读入一个字符  %d读入十进制整数  %i读入十进制,八进制,十六进制整数  %o读入八进制整数  %x,%X读入十六进制整数  %s读入一个字符串,遇空格、制表符或换行符结束。  %f,%F,%e,%E,%g,%G... 查看详情

读入字符并创建数组c ++

...何从文件中读取一行字符。首先,程序从文件中读取一个整数。该数字表示下一步要读取多少个字符。下一步读取字符并将它们存储在一个数组中。那么如何创建\'char\'变量,以便我可以正确读取Michael的字符以将它们显示在数组... 查看详情

Java 未正确将字符串转换为长对象

】Java未正确将字符串转换为长对象【英文标题】:JavaNotConvertingStringtoLongObjectProperly【发布时间】:2010-09-2210:06:06【问题描述】:我们在AIX的WebsphereApplicationServer上使用Spring/Hibernate。在我的Windows机器上,该问题不会发生——仅在... 查看详情

c语言怎样定义变长数组

...因为对C99新标准没有很好地实现。VS2005也不行。VS2013可以正确编译。gcc3.2.2也可以正确编译。参考技术A没办法定义”变长数组“chararray[x];x的值在定义(分配空间时)必须指明或者程序能得到x的值。变长数组基本实现思路是申请... 查看详情

在C ++中将用空格分隔的字符串读入向量[关闭]

...:181920212223222324232425242526252627282930293031我想将test.txt中的整数作为字符串读取,然后创建一个包含3个整数的向量。如 查看详情

HTML 电子邮件未正确显示

】HTML电子邮件未正确显示【英文标题】:HTMLemailnotdisplayingcorrectly【发布时间】:2011-04-1013:24:23【问题描述】:我在用c#发送HTML邮件时遇到了一个奇怪的问题。基本上,我每天早上都会尝试通过电子邮件向自己发送天气信息,我... 查看详情

Java - 如何将用空格分隔的整数读入数组

】Java-如何将用空格分隔的整数读入数组【英文标题】:Java-Howtoreadintegersseparatedbyaspaceintoanarray【发布时间】:2012-12-2907:29:41【问题描述】:我的项目有问题,因为我无法正确开始,即从用户那里读取一行由空格分隔的整数并将... 查看详情