标签: printf

在D中打印浮点数

自从我上次使用D编程语言以来已经有一段时间了,现在我将它用于一些涉及科学计算的项目.

我有一堆浮点数据,但是当我使用它打印时writefln,我得到的结果如下:4.62593E-172这是零!如何使用字符串格式化%stuff来打印0这样的东西?

现在我正在使用黑客:

    if( abs(a) < 0.0000001 )
        writefln(0);
    else
        writefln(a);
Run Code Online (Sandbox Code Playgroud)

它完成了这项工作,但我希望使用格式化操作,如果可能的话.

UPDATE

有人建议,writefln("%.3f", a)但它的问题是它打印不必要的额外零,即0成为0.000和1.2变成1.200
我可以使它也删除尾随零?

printf d

2
推荐指数
1
解决办法
327
查看次数

在C++中使用带有sprintf()的格式字符串的警告

编译这一行

    long int sz;
    char tmpret[128];

    //take substring of c, translate in c string, convert to int, 
    //and multiply with 1024
    sz=atoi(c.substr(0,pos).c_str())*1024;

    snprintf(tmpret,128,"%l",sz); 
Run Code Online (Sandbox Code Playgroud)

我在snprintf上读了两个警告:

 warning: conversion lacks type at end of format
 warning: too many arguments for format
Run Code Online (Sandbox Code Playgroud)

为什么?指定了类型(long int sz和snprintf中的%l),snprintf中的参数只有一个.有谁能够帮我?谢谢.

c++ format printf types

2
推荐指数
1
解决办法
1万
查看次数

使用printf时的Segfault

我正在为浮点异常的信号处理程序中调试一些Linux C代码.目标是检查浮点寄存器,打印一些信息,然后中止.尝试printf结果时出现分段错误(char)('0' + phyreg).

struct ucontext *   uc = (struct ucontext *) data;
fpregset_t      fp = uc -> uc_mcontext.fpregs;

int top = (fp -> sw >> 11) & 0x07;
int i,j,k;
for (i = 0; i < 8; i++) {
    static const char * tags [] = {
        "valid", "zero", "invalid/infin", "empty"
    };
    int phyreg = (top + i) & 0x07;
    struct _libc_fpreg* r = &(fp -> _st [phyreg]);
    const char* regExp = (((r->exponent & 0x8000) != 0) …
Run Code Online (Sandbox Code Playgroud)

c printf segmentation-fault

2
推荐指数
1
解决办法
1733
查看次数

c ++如果用sprintf打印的字符多于char指针分配的字符会怎么样?

我认为这是使用sprintf的常用方法:

char pText[x];
sprintf(pText, "helloworld %d", Count );
Run Code Online (Sandbox Code Playgroud)

但是,如果char指针分配的内存少于打印到的内容,究竟会发生什么?

即如果x小于sprintf的第二个参数的长度怎么办?

我问,因为我在sprintf语句后面的代码中得到了一些奇怪的行为.

c++ printf

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

如何通过C程序写入文本文件

我的问题是fprintf只是将预期输出的一部分打印到文件中.当我使用printf时,输出正确地打印在输出窗口上,显示循环是正确的但是当我使用它与fprintf时,不打印完整的输出.仅打印初始部分.

请问可能出现什么问题?

提前致谢...

printf file partial

2
推荐指数
1
解决办法
1595
查看次数

如何设置显示数字的填充字符(目标C)

我正在尝试格式化一个字符串,为一个数字提供2个字符,无论它的值是什么.现在,我有

[NSString stringWithFormat:@"%2d:%2d:%2d",h,m,s)];
Run Code Online (Sandbox Code Playgroud)

对于值1,2,3,输出为

 1: 2: 3
Run Code Online (Sandbox Code Playgroud)

如何将空格更改为0?

iphone cocoa printf stringwithformat

2
推荐指数
1
解决办法
834
查看次数

C char数组不是字符串模式?

我在以下代码上遇到编译错误:

printf((char*)buffer);

以及我得到的错误消息是:

cc1:格式不是字符串文字,没有格式参数...

我怀疑有些库我忘了安装,因为我能够在其他机器上编译并运行代码而没有错误...

PS:问题随着我能够在其他机器上运行相同的代码而增加...我怀疑gcc版本的差异可能会导致这样的问题?

c printf

2
推荐指数
1
解决办法
3847
查看次数

NSLog(...)不正确的格式说明符会影响其他变量吗?

我最近浪费了大约半个小时来追踪NSLog(...)中的奇怪行为:

NSString *text = @"abc";
long long num = 123;
NSLog(@"num=%lld, text=%@",num,text); //(A)
NSLog(@"num=%d, text=%@",num,text); //(B)
Run Code Online (Sandbox Code Playgroud)

行(A)打印预期的"num = 123,text = abc",但行(B)打印"num = 123,text = (null) ".

显然,打印long longwith %d是一个错误,但有人可以解释为什么它会导致text打印为null?

formatting stack printf objective-c nslog

2
推荐指数
1
解决办法
2168
查看次数

printf("%d%d%d \n",++ a,a ++,a)输出

可能重复:
任何人都可以解释这些未定义的行为(i = i ++ + ++ i,i = i ++等...)

我无法理解该程序的输出(使用gcc).

main()
{
  int a=10;
  printf("%d %d %d\n",++a, a++,a);
}
Run Code Online (Sandbox Code Playgroud)

输出:

12 10 12
Run Code Online (Sandbox Code Playgroud)

另外,请解释评论的顺序printf().

c printf

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

一个没有#include <stdio.h>的简单C程序

如何在不包含stdio.h的情况下直接调用"printf"?

我在这里找到了一个有趣的教程:http:
//www.halcode.com/archives/2008/05/11/hello-world-c-and-gnu-as/

所以,这是我的尝试:

int main(){
 char ss[] = "hello";

 asm (
  "pushl %ebp ;"
  "movl %esp, %ebp ;"
  "subl $4, %esp ;"
  "movl $ss, (%esp) ;"
  "call _printf ;"
  "movl  $0, %eax ;"
  "leave ;"
  "ret ;"
 );

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

我正在使用MinGW 4.4,这是我如何编译它:

gcc -c hello.c -o hello.o
ld hello.o -o hello.exe C:/mingw/lib/crt2.o C:/mingw/lib/gcc/mingw32/4.4.0/crtbegin.o C: /mingw/lib/gcc/mingw32/4.4.0/crtend.o -LC:/mingw/lib/gcc/mingw32/4.4.0 -LC:/ mingw/lib -lmingw32 -lgcc -lmsvcrt -lkernel32

不幸的是,它失败了:

hello.o:hello.c :(.text + 0x26):对`ss'的未定义引用

如何解决这个问题?

c assembly printf mingw inline-assembly

2
推荐指数
1
解决办法
6192
查看次数