以下是一个简单的程序,用于在HP和Linux上打印格式化的“1.2”。然而,它们的行为不同。
我不想让问题变得更大,但实际发生这种情况的程序中有一个字符串中的浮点值,因此不能使用%f选项(即使使用sprintf也不行)。
有人遇到过这种情况吗?哪种行为是正确的?
这不应该是编译器问题,但仍然尝试了gcc、icpc、icc和g++。
有人遇到过这种情况吗?哪种行为是正确的?
这不应该是编译器问题,但仍然尝试了gcc、icpc、icc和g++。
#include <stdio.h>
int main()
{
printf("%s = [%010s]\n", "[%010s]", "1.2");
return 0;
}
**HP:**
cc test2.c -o t ; ./t
[%010s] = [00000001.2]
**Linux:**
icc test2.c -o t ; ./t
[%010s] = [ 1.2]
编辑:非常感谢大家的回复 :)