format-specifiers相关内容
这可能是有点的“修复我的 - code”的问题,但我看的文档,
..
我有一个给定的code,在我看来,有什么不对的code: 我编译下XINU。 接下来的变量是相关的: 无符号长ularray []; INT NUM; 焦炭海峡[100]; 有一个函数返回INT: INT FUNC(int i)以 { 返回ularray [I] } 现在的code是这样的: NUM = FUNC(I) sprintf的(STR,“数=%lu个\\ N”
..
我得到MISRA型错误,当我使用的snprintf “%F”说明符类型的参数浮动。 根据我的研究,MISRA是正确的,因为“%F”expectes一种双。 是否有浮点说明或修改,将使用浮动类型参数,而不是一个双击? 我工作在嵌入式系统上,不希望从32位浮点转换为64位双击只是为了取悦的snprintf 功能。在code打印到调试/控制台端口而这正是发生转换的地方。 对于那些你需要一个cod
..
假如我忘了关闭扫描集的右括号] 。什么会怎样呢?是否未定义行为? 例如: 字符海峡[] =“你好!一二三” 字符S1 [50] = {0},S2 [50] = {0}; 的sscanf(STR,“%S%[^ h”的,S1,S2); / * UB? * / 的printf(“S1 ='%s'的S2 ='%s'的\\ n”,S1,S2); 在编译的时候我从GCC的警告: source_file
..
考虑下面的程序: 的#include<&stdio.h中GT; 诠释的main() { 短= 9; //的printf(“%喜\\ N”,一); 的printf(“%d个”,一); // LINE 6 } 根据这的短类型的格式说明符(签字)为 %喜 在短类型的变量总是被自动提升为 INT上执行任何操作之前,?它是不确定的行为, 如果我使用%D格式说明打印在这个
..
我用的用C std99其定义在&LT定义数据类型BOOL; stdbool.h> 。现在,我希望用户给我输入。什么格式说明我必须scanf函数使用输入1字节的布尔值从用户,然后在我的节目结束之后操纵它。 解决方案 有是没有的。 使用一个临时对象 _Bool 的大小依赖于实现。 的#include< stdbool.h> #包括LT&;&stdio.h中GT;布尔B:
..
如何是符%P 和%FP 在以下code工作? 无效的主要() { INT I = 85; 的printf(“%P%FP”,我,我); 残培(); } 我收到O / P为 0000000000000055 0000000000000055 解决方案 如果这是你在问什么,%p和%FP打印出的指针,特别是涉及指针指向的地址,因为它是打印出您的计算机的体系结构的一部分时,
..
下面的程序是未定义行为: 的#include<&stdio.h中GT;INT主要(无效) { unsigned int类型X = -100; //这是罚款,成为UINT_MAX - 100 的printf(“%d个\\ N”,X); //这是不确定的行为。 返回0; } C99 7.19.6.1p8状态%d个期望一个int参数。 C9
..
的typedef的常见用法是使一个变量的“类型”传达的一个变量的宗旨更好的主意而不必重新定义它背后的存储结构。 不过,我也看到的typedef,以此来改变类变量的存储结构一气呵成。 例如,如果我定义 的typedef uint32_t的my_offset_t 和有类型的变量 my_offset_t ,从 uint32_t的切换code-基地字符或 uint64_t中是改变一行,并重新编译
..
在的“C的Primer Plus”为例,笔者使用了%UL 格式说明(在scanf函数和printf)对于无符号长。当我尝试概括的问题,似乎%UL 使得一些错误在我的电脑。但是,使用鲁%解决了问题。 其实,而非着眼于问题的codeS行了,我想知道的%UL 和的区别鲁%。也许我可以找出什么是错的。 搜索不给我一些有用的东西(除了“它们是不同的”)。 任何解释或链接/参考AP preciated。
..
在一本书,我读,它写了的printf 带一个参数(无需转换说明符)是德precated。它建议替代 的printf(“世界,你好!”); 与看跌期权(的“Hello World!”); 或的printf(“%S”,的“Hello World!”); 谁能告诉我,为什么的printf(“世界,你好!”); 是错的?这是写在,它包含漏洞的书。这些是什么漏洞? 解决方案 的print
..
可能这是一个简单的问题,但我不知道如何漂浮变量存储在内存中,为什么以这种方式行事,有人可以请有关以下行为的解释。 #包括LT&;&stdio.h中GT;诠释的main() { INT A = 9/5; 的printf(“%F \\ N”,一); 返回0; } 输出: 0.000000 我已经看过了如何浮动变量的一些信息都存储在内存中,它有东西约尾数,指数和符号。但
..
我想要在C循环,当程序要求一个整数,用户输入一个非数字字符时,程序整数又问。 我刚刚发现下面的code。但我不明白这是什么意思 scanf函数(“%* [^ \\ n] *%C”)。这是什么 ^ \\ n 是什么意思?什么是 * 在 ^ \\ n 和 C 意思? / * 这个程序计算出用户的4个人得分的平均分, 并输出均值和最终成绩 输入:score1,score2,score2,sco
..
有没有办法有一个用户inputed浮点格式说明? 例如,如果我打印本。 浮法C = 15.0123 的printf(“%2F”。,C);//输出:15.01 我怎么可以指定小数数给一个变量?这样的: INT N = 3; 浮C = 15.0123 的printf(“%(%I)楼”,N,C);//输出:15.012 解决方案 在precision可以通过用星号 * 参数中指定。这就是
..
这里 我看了 的,有一个顺序点: 与输入/输出转换格式说明相关的操作后。例如,在EX pression 的printf(“富%N%D”,&安培;一,42),有%N 打印前进行评估 42 。 然而,当我运行这个code : INT your_function(int类型的,INT B){ 返回 - B; }诠释主要(无效){ INT I = 10; 的pri
..
我要打印出来使用的printf 在C ++中使用Microsoft Visual Studio 2010 为size_t 变量的值(我想用的printf 而不是<< 在这个特定的一块code,所以请不答案告诉我,我应该使用<< 代替) 据帖子
..
在一些code,我有维护,我见过的格式说明%* S 。谁能告诉我这是什么,以及为什么使用它? 其使用的一个例子是这样的: fprintf中(不过outFile,“\\ N%* S”,缩进,“”); 解决方案 它用于指定,在动态方式,什么字段的宽度是:在 未在格式字符串指定的宽度,但作为附加 整数值参数preceding的 有说法进行格式化。 所以“缩进
..
我听说指针首先应转换为void,以确保在不同的平台价值的一致性,应使用%P 格式说明。为什么它,到底是什么问题? INT X = 100; INT * PI =安培; X; 的printf(“圆周率的值是:%P”(无效*)PI); 解决方案 的printf 是一个可变参数函数,必须通过正确类型的参数。该标准说%P 需要无效* 。
..
的#include<&stdio.h中GT;诠释主(){ INT I = 10,J = 20; 的printf(“%D%D”,I,J); 的printf(“%d个”,I,J); 返回0; } 使用的Turbo C编译器,输出是这样的: 10 garbageValue20 有人能解释这是为什么? 解决方案 您所使用的编译器?我测试的Turbo C 2.0和Tu
..
这里,我看到了在接受的答案这条语句: 大部分的转换说明的跳过前导空白包括换行,但%C 没有。 对于我来说,目前还不清楚这下不同行为的理由,我本来期望一个统一的一个(例如总是跳跃或从不)。 我来到这样的问题了一块C $ C $的C是这样的: 的#include“stdio.h中”诠释主要(无效){ 焦炭CH; INT actualNum; 的printf(“插
..