标签: format-specifiers

%%在java中意味着什么?

我是PHP程序员,并想知道这条线的含义.

System.out.printf("exp(%.3f) is %.3f%n", x, Math.exp(x))
Run Code Online (Sandbox Code Playgroud)

%.3f,%.3f%n和逗号x是什么意思?

java printf format-specifiers

3
推荐指数
1
解决办法
9023
查看次数

我可以使用%p说明符输出Windows句柄吗?

这是对这个问题的一种后续行动.Windows SDK具有以下HANDLE定义的数据类型WinNT.h:

typedef void *HANDLE;
Run Code Online (Sandbox Code Playgroud)

此数据类型用于表示句柄.从技术上讲,句柄不是指针 - 它只是与Win32函数一起使用的神奇值.然而,它被声明用一个void*typedef 数据类型表示.

如果我想使用以下代码输出句柄十六进制值:

HANDLE handle = ...;
printf("%p", handle);
Run Code Online (Sandbox Code Playgroud)

它会合法吗?

c++ winapi pointers handle format-specifiers

3
推荐指数
1
解决办法
7824
查看次数

为什么没有在C中显示?

这是我在C中的代码片段:

      char *str = NULL;
      int len = -1;

      // Get length
      len = snprintf(NULL, 0, "[%d]", 2);

      // Allocate str
      str = (char *)malloc(len + 1);

      // Assign str
      snprintf(str, len, "[%d]", 2);

      assert(len == 3);

      // Display str
      puts(str);
Run Code Online (Sandbox Code Playgroud)

我希望这应该显示出来[2].而len这里是3.

但只运行此代码 [2

为什么会这样?

c format-specifiers

3
推荐指数
1
解决办法
118
查看次数

是否有一个C#格式说明符,除非值为零,否则将省略前导零?

换句话说,我希望0.123显示为".123",但0应显示为"0".目前我得到的最好的是

String.Format("{0:.###}", n)
Run Code Online (Sandbox Code Playgroud)

对于0.123给出".123",但对于0给出""(空字符串).

c# string-formatting format-specifiers

3
推荐指数
1
解决办法
702
查看次数

为什么两个整数的除法返回0.00?

每次我运行这个程序,我会得到不同的和奇怪的结果.这是为什么?

#include <stdio.h>

int main(void) {
    int a = 5, b = 2;
    printf("%.2f", a/b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c printf format-specifiers

3
推荐指数
2
解决办法
164
查看次数

打印wchar_t会产生奇怪的输出

运行此代码段:

wchar_t *wstr = L"áßå®";
wprintf(L"%s",wstr);
Run Code Online (Sandbox Code Playgroud)

给出输出:

«

代替

áßå®

我是新来的wchar_t.我如何获得预期的输出?

c printf wchar-t format-specifiers

3
推荐指数
1
解决办法
437
查看次数

使用%f输出EOF

#include<stdio.h>
int main()
{
    printf("%d",EOF);
}
Run Code Online (Sandbox Code Playgroud)

生成-1这完全没问题,但是

#include<stdio.h>
int main()
{
    printf("%f",EOF);
}
Run Code Online (Sandbox Code Playgroud)

产生0.000.当预期输出为-1.000时,有人能解释这个吗?

c io printf eof format-specifiers

3
推荐指数
2
解决办法
129
查看次数

指针除了地址之外还有什么东西?[C]

我现在一直在大学学习C几个月了,但是我错过了一个关于指针的讲座,所以我试着通过在线学习来弥补它,我以为我得到了它 - 但我偶然发现的东西是非常烦人的为了我.

我知道指针只包含他们指向的地址 - 例如,如果到目前为止我理解了所有内容,我有:

int *pointer;
int number = 30;
pointer = &number;
printf("Number at location: %d", *pointer);
Run Code Online (Sandbox Code Playgroud)

这应该没问题.我将变量号的地址分配给指针,然后通过解除引用指针并从地址获取实际值来最终打印它.令我恼火的是焦点指针.

我已经阅读了字符串数组/指针,所以我尝试了一些事情,当我注意到一些奇怪的东西(至少我的眼睛)发生了,也有int指针:

char* pointer;
char array[] = "Dingleberry";
pointer = array;
printf("%s\n", pointer);
return 0;
Run Code Online (Sandbox Code Playgroud)

我知道我不是直接分配地址,但是如果我没记错的话,使用数组,这不一定与指针结合 - 无论如何 - 这里的代码按预期工作,它打印出"Dingleberry".我现在的问题是......为什么?如果没有解除引用,指针不应只保存值的地址吗?如果我在这里取消引用,程序崩溃,它确实显示地址,如果我使用&虽然.

编译时我没有收到任何警告.此外,如果我使用它不应该工作:

printf("%c", pointer); 
Run Code Online (Sandbox Code Playgroud)

只收到一封信?(我的意思是,尝试这确实显示了一个警告 - 但我有兴趣变得更好并排除我最有可能的愚蠢错误观念.)

c arrays printf pointers format-specifiers

3
推荐指数
1
解决办法
124
查看次数

$ d在printf中做了什么?

我不小心写道:

printf "here: %s $d\n" "${line:0:32}" "${#line}"
Run Code Online (Sandbox Code Playgroud)

得到了:

here: /home/gsamaras/Bash/libs/goodLib 
here: 103 
Run Code Online (Sandbox Code Playgroud)

为什么?

我当然想说%d,但我不理解我犯的错误中的这种行为.我可能希望它打印"here:/ home/gsamaras/Bash/libs/goodLib $ d",就像它do in C...我找不到重复或其他东西,因此问题.

string bash printf format-specifiers

3
推荐指数
2
解决办法
219
查看次数

以下c程序的输出为-10的原因

#include <stdio.h>

int main() {
    unsigned int a = -10;
    printf("a=%d\n", a);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码是打印-10签名int.如果签名和未签名都打印,-10那么它们之间有什么区别?

c printf format-specifiers unsigned-integer

3
推荐指数
2
解决办法
108
查看次数