⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printf.c

📁 this is a glib for c language
💻 C
📖 第 1 页 / 共 2 页
字号:
/* Unit tests for gstring * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald * * This work is provided "as is"; redistribution and modification * in whole or in part, in any medium, physical or electronic is * permitted without restriction. * * This work is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * In no event shall the authors or contributors be liable for any * direct, indirect, incidental, special, exemplary, or consequential * damages (including, but not limited to, procurement of substitute * goods or services; loss of use, data, or profits; or business * interruption) however caused and on any theory of liability, whether * in contract, strict liability, or tort (including negligence or * otherwise) arising in any way out of the use of this software, even * if advised of the possibility of such damage. */#include <stdio.h>#include <string.h>#include "glib.h"static voidtest_retval_and_trunc (void){  gchar buf[128];  gint res;  res = g_snprintf (buf, 0, "abc");  g_assert_cmpint (res, ==, 3);  res = g_snprintf (NULL, 0, "abc");  g_assert_cmpint (res, ==, 3);  res = g_snprintf (buf, 5, "abc");  g_assert_cmpint (res, ==, 3);  res = g_snprintf (buf, 1, "abc");  g_assert_cmpint (res, ==, 3);  g_assert (buf[0] == '\0');  g_assert_cmpstr (buf, ==, "");  res = g_snprintf (buf, 2, "abc");  g_assert_cmpint (res, ==, 3);  g_assert (buf[1] == '\0');  g_assert_cmpstr (buf, ==, "a");  res = g_snprintf (buf, 3, "abc");  g_assert_cmpint (res, ==, 3);  g_assert (buf[2] == '\0');  g_assert_cmpstr (buf, ==, "ab");  res = g_snprintf (buf, 4, "abc");  g_assert_cmpint (res, ==, 3);  g_assert (buf[3] == '\0');  g_assert_cmpstr (buf, ==, "abc");  res = g_snprintf (buf, 5, "abc");  g_assert_cmpint (res, ==, 3);  g_assert (buf[3] == '\0');  g_assert_cmpstr (buf, ==, "abc");}static voidtest_d (void){  gchar buf[128];  gint res;  /* %d basic formatting */  res = g_snprintf (buf, 128, "%d", 5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  res = g_snprintf (buf, 128, "%d", 0);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "0");  res = g_snprintf (buf, 128, "%.0d", 0);  g_assert_cmpint (res, ==, 0);  g_assert_cmpstr (buf, ==, "");  res = g_snprintf (buf, 128, "%.0d", 1);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "1");  res = g_snprintf (buf, 128, "%.d", 2);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "2");  res = g_snprintf (buf, 128, "%d", -1);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "-1");  res = g_snprintf (buf, 128, "%.3d", 5);  g_assert_cmpint (res, ==, 3);  g_assert_cmpstr (buf, ==, "005");  res = g_snprintf (buf, 128, "%.3d", -5);  g_assert_cmpint (res, ==, 4);  g_assert_cmpstr (buf, ==, "-005");  res = g_snprintf (buf, 128, "%5.3d", 5);  g_assert_cmpint (res, ==, 5);  g_assert_cmpstr (buf, ==, "  005");  res = g_snprintf (buf, 128, "%-5.3d", -5);  g_assert_cmpint (res, ==, 5);  g_assert_cmpstr (buf, ==, "-005 ");  /* %d, length modifiers */  res = g_snprintf (buf, 128, "%" G_GINT16_FORMAT, (gint16)-5);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "-5");  res = g_snprintf (buf, 128, "%" G_GUINT16_FORMAT, (guint16)5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  res = g_snprintf (buf, 128, "%" G_GINT32_FORMAT, (gint32)-5);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "-5");  res = g_snprintf (buf, 128, "%" G_GUINT32_FORMAT, (guint32)5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  res = g_snprintf (buf, 128, "%" G_GINT64_FORMAT, (gint64)-5);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "-5");  res = g_snprintf (buf, 128, "%" G_GUINT64_FORMAT, (guint64)5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  res = g_snprintf (buf, 128, "%" G_GSSIZE_FORMAT, (gssize)-5);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "-5");  res = g_snprintf (buf, 128, "%" G_GSIZE_FORMAT, (gsize)5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  /* %d, flags */  res = g_snprintf (buf, 128, "%-d", 5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  res = g_snprintf (buf, 128, "%-+d", 5);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "+5");  res = g_snprintf (buf, 128, "%+-d", 5);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "+5");  res = g_snprintf (buf, 128, "%+d", -5);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "-5");  res = g_snprintf (buf, 128, "% d", 5);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, " 5");  res = g_snprintf (buf, 128, "% .0d", 0);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, " ");  res = g_snprintf (buf, 128, "% +d", 5);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "+5");  res = g_snprintf (buf, 128, "%03d", 5);  g_assert_cmpint (res, ==, 3);  g_assert_cmpstr (buf, ==, "005");  res = g_snprintf (buf, 128, "%-03d", -5);  g_assert_cmpint (res, ==, 3);  g_assert_cmpstr (buf, ==, "-5 ");  res = g_snprintf (buf, 128, "%03d", -5);  g_assert_cmpint (res, ==, 3);  g_assert_cmpstr (buf, ==, "-05");}static voidtest_o (void){  gchar buf[128];  gint res;  /* %o basic formatting */  res = g_snprintf (buf, 128, "%o", 5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  res = g_snprintf (buf, 128, "%o", 8);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "10");  res = g_snprintf (buf, 128, "%o", 0);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "0");  res = g_snprintf (buf, 128, "%.0o", 0);  g_assert_cmpint (res, ==, 0);  g_assert_cmpstr (buf, ==, "");  res = g_snprintf (buf, 128, "%.0o", 1);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "1");  res = g_snprintf (buf, 128, "%.3o", 5);  g_assert_cmpint (res, ==, 3);  g_assert_cmpstr (buf, ==, "005");  res = g_snprintf (buf, 128, "%.3o", 8);  g_assert_cmpint (res, ==, 3);  g_assert_cmpstr (buf, ==, "010");  res = g_snprintf (buf, 128, "%5.3o", 5);  g_assert_cmpint (res, ==, 5);  g_assert_cmpstr (buf, ==, "  005");}static voidtest_u (void){  gchar buf[128];  gint res;  /* %u, basic formatting */  res = g_snprintf (buf, 128, "%u", 5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  res = g_snprintf (buf, 128, "%u", 0);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "0");  res = g_snprintf (buf, 128, "%.0u", 0);  g_assert_cmpint (res, ==, 0);  g_assert_cmpstr (buf, ==, "");  res = g_snprintf (buf, 128, "%.0u", 1);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "1");  res = g_snprintf (buf, 128, "%.3u", 5);  g_assert_cmpint (res, ==, 3);  g_assert_cmpstr (buf, ==, "005");  res = g_snprintf (buf, 128, "%5.3u", 5);  g_assert_cmpint (res, ==, 5);  g_assert_cmpstr (buf, ==, "  005");}static voidtest_x (void){  gchar buf[128];  gint res;  /* %x, basic formatting */  res = g_snprintf (buf, 128, "%x", 5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  res = g_snprintf (buf, 128, "%x", 31);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "1f");  res = g_snprintf (buf, 128, "%x", 0);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "0");  res = g_snprintf (buf, 128, "%.0x", 0);  g_assert_cmpint (res, ==, 0);  g_assert_cmpstr (buf, ==, "");  res = g_snprintf (buf, 128, "%.0x", 1);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "1");  res = g_snprintf (buf, 128, "%.3x", 5);  g_assert_cmpint (res, ==, 3);  g_assert_cmpstr (buf, ==, "005");  res = g_snprintf (buf, 128, "%.3x", 31);  g_assert_cmpint (res, ==, 3);  g_assert_cmpstr (buf, ==, "01f");  res = g_snprintf (buf, 128, "%5.3x", 5);  g_assert_cmpint (res, ==, 5);  g_assert_cmpstr (buf, ==, "  005");  /* %x, flags */  res = g_snprintf (buf, 128, "%-x", 5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  res = g_snprintf (buf, 128, "%03x", 5);  g_assert_cmpint (res, ==, 3);  g_assert_cmpstr (buf, ==, "005");  res = g_snprintf (buf, 128, "%#x", 31);  g_assert_cmpint (res, ==, 4);  g_assert_cmpstr (buf, ==, "0x1f");  res = g_snprintf (buf, 128, "%#x", 0);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "0");}static voidtest_X (void){  gchar buf[128];  gint res;  /* %X, basic formatting */  res = g_snprintf (buf, 128, "%X", 5);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "5");  res = g_snprintf (buf, 128, "%X", 31);  g_assert_cmpint (res, ==, 2);  g_assert_cmpstr (buf, ==, "1F");  res = g_snprintf (buf, 128, "%X", 0);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "0");  res = g_snprintf (buf, 128, "%.0X", 0);  g_assert_cmpint (res, ==, 0);  g_assert_cmpstr (buf, ==, "");  res = g_snprintf (buf, 128, "%.0X", 1);  g_assert_cmpint (res, ==, 1);  g_assert_cmpstr (buf, ==, "1");

⌨️ 快捷键说明

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