请问下c++如果只想输出前5个字符,怎么用格式字符串实现?

c++ 一个16进制数,如果输出时要求有数据前缀怎么处理?
对于scanf函数,如果输入的是实数来给double类型变量赋值,用%6f格式字符串,结果会怎样?
新人求教,谢谢,

HUX布斯
浏览 364回答 2
2回答

FFIVE

首先要说明的两点是:C++提供了cin和cout来进行输入输出,不建议再采用C语言中的scanf和printf来输入输出;如果用scanf和printf输入输出,就要遵循格式规范,不要试图去测试不匹配的情况,你的问题是%ld明明针对的是long类型的数据,你非要用它来接收short类型的变量,这样得到的结果是不确定的,也完全没有意义(因为C语言设计的初衷就是给成熟的程序员使用的语言,认为使用C语言的人都会遵循规范,保证输入输出的正确是C程序员的职责)接下来回答你的问题,按照你的提问使用格式字符串:short变量,选用%ld格式字符串通过scanf函数来赋值,结果是未定义的;只想输出前5个字符,怎么用格式字符串实现,我目前没有办法实现,除非对原始字符串进行处理,取出前五个字符组成子字符串,然后进行输出;一个16进制数,如果输出时要求有数据前缀怎么处理?用%#X应该就可以了;scanf函数只能接收%lf,来处理double变量,不能指定格式,格式的指定应该在printf中,而不是scanf中

交互式爱情

1.对于short变量,选用%ld格式字符串通过scanf函数来赋值,结果怎样?在int整数范围内没有问题,(short与int整数范围相同)2.如果只想输出前5个字符,怎么用格式字符串实现形如 printf("%5.5s\n", "12345678"),可输出字串的前5位。
打开App,查看更多内容
随时随地看视频慕课网APP