tst-fphex.c

来自「绝对正真的stdio.h的实现」· C语言 代码 · 共 52 行

C
52
字号
/* Test program for %a printf formats.  */#include <stdio.h>#include <string.h>struct testcase{  double value;  const char *fmt;  const char *expect;};static const struct testcase testcases[] =  {    { 0x0.0030p+0, "%a",	"0x1.8p-11" },    { 0x0.0040p+0, "%a",	"0x1p-10" },    { 0x0.0030p+0, "%040a",	"0x00000000000000000000000000000001.8p-11" },    { 0x0.0040p+0, "%040a",	"0x0000000000000000000000000000000001p-10" },    { 0x0.0040p+0, "%40a",	"                                 0x1p-10" },    { 0x0.0040p+0, "%#40a",	"                                0x1.p-10" },    { 0x0.0040p+0, "%-40a",	"0x1p-10                                 " },    { 0x0.0040p+0, "%#-40a",	"0x1.p-10                                " },    { 0x0.0030p+0, "%040e",	"00000000000000000000000000007.324219e-04" },    { 0x0.0040p+0, "%040e",	"00000000000000000000000000009.765625e-04" },  };static intdo_test (int argc, char **argv){  const struct testcase *t;  int result = 0;  for (t = testcases;       t < &testcases[sizeof testcases / sizeof testcases[0]];       ++t)    {      char buf[1024];      int n = snprintf (buf, sizeof buf, t->fmt, t->value);      if (n != strlen (t->expect) || strcmp (buf, t->expect) != 0)	{	  printf ("%s\tExpected \"%s\" (%Zu)\n\tGot      \"%s\" (%d, %Zu)\n",		  t->fmt, t->expect, strlen (t->expect), buf, n, strlen (buf));	  result = 1;	}    }  return result;}#include "../test-skeleton.c"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?