472 次查看
在本节中,我们将了解如何在 C 语言中打印一个数字 100 次。有一些限制条件。我们不能使用循环、递归或宏展开。要解决此问题,我们将使用 C 语言中的 setjump 和 longjump。setjump() 和 longjump() 位于 setjmp.h 库中。这两个函数的语法如下所示。示例#include #include jmp_buf buf; main() { int x = 1; setjmp(buf); //使用 buf 设置跳转位置 printf("5"); //打印一个数字 x++; if (x
400 次查看
在本节中,我们将了解如何以更简单的方式查看本地系统的 Host 名和 IP 地址。我们将编写一个 C 程序来查找主机名和 IP。以下是一些使用的函数。这些函数具有不同的任务。让我们看看这些函数及其任务。函数描述gethostname()它查找本地计算机的标准主机名。gethostbyname()它从主机数据库中查找与主机名对应的主机信息iten_ntoa()它将 IPv4 Internet 网络地址转换为带点十进制格式的 ASCII 字符串。示例#include #include #include #include #include ... 阅读更多
7K+ 次查看
这里我们将了解如何在 C 语言中获取两个浮点型或双精度型数据的模。模数基本上是求余数。为此,我们可以使用 C 语言中的 remainder() 函数。remainder() 函数用于计算分子/分母的浮点余数。因此,remainder(x, y) 将如下所示。remainder(x, y) = x – rquote * y rquote 是 x/y 的值。它四舍五入到最接近的整数值。此函数接受两个 double、float、long double 类型的参数,并返回与作为参数给出的相同类型的余数。 ... 阅读更多
2K+ 次查看
这里我们将看到三个函数。这些函数是 trunc()、truncf() 和 truncl()。这些函数用于将浮点值转换为截断形式。trunc() 函数此函数用于截断 double 类型的值。并且仅返回整数部分。语法如下所示。double trunc(double argument)示例#include #include main() { double a, b, x, y; x = 53.26; y = 75.86; a = trunc(x); b = trunc(y); printf("a 的值为:%lf", a); printf("a 的值为:%lf", b); }输出a 的值为:53.000000 a 的值为:75.000000 ... 阅读更多
在本节中,我们将了解 C 语言中的 setjump 和 longjump 是什么。setjump() 和 longjump() 位于 setjmp.h 库中。这两个函数的语法如下所示。setjump(jmp_buf buf) : 使用 buf 存储当前位置并返回 0。longjump(jmp_buf buf, i) : 返回 buf 指向的位置并返回 i。这些用于 C 语言中的异常处理。setjump() 可以用作 try 块,longjump() 可以用作 throw 语句。longjump() 将控制权转移到 setjump() 指向的位置。这里我们将了解如何打印数字 100 ... 阅读更多
14K+ 次查看
这里我们将了解如何计算进程执行时间。对于此问题,我们将使用 clock() 函数。clock() 位于 time.h 头文件中。要获取经过时间,我们可以在任务开始和结束时使用 clock() 获取时间,然后减去这些值以获取差值。之后,我们将差值除以 CLOCK_PER_SEC(每秒的时钟滴答数)以获取处理器时间。示例#include #include void take_enter() { printf("按 Enter 键停止计数器 "); while(1) { ... 阅读更多
258 次查看
这里我们将了解如何更改 main() 中 printf() 函数的输出。这里我们将定义一个函数,该函数将所有给定类型的 printf() 语句更改为另一种类型。我们将使用 #define 宏来执行此任务。此宏将在函数内部定义。我们可以直接放置 #define 行而不使用它在函数中,但在这种情况下,printf() 将始终被更改。要使用 main 控制它,我们必须首先调用该函数。示例#include void changePrintf() { //任何 printf 始终打印 50 #define ... 阅读更多
688 次查看
这里我们将了解如何编写一个单行 C 函数,该函数可以舍入浮点数。要解决此问题,我们必须遵循以下步骤。获取数字如果数字为正,则添加 0.5否则,减去 0.5使用类型转换将浮点值转换为整数示例#include int my_round(float number) { return (int) (number < 0 ? number - 0.5 : number + 0.5); } int main () { printf("(2.48) 的舍入值为:%d", my_round(2.48)); printf("(-5.79) 的舍入值为:%d",my_round(-5.79)); }输出(2.48) 的舍入值为:2 (-5.79) 的舍入值为:-6
1K+ 次查看
有时,您可能会遇到需要一个可以接受可变数量参数(即参数)而不是预定义数量的参数的函数的情况。C/C++ 编程语言为此情况提供了解决方案,并且允许您定义一个可以根据您的需要接受可变数量参数的函数。以下示例显示了此类函数的定义。int func(int, ... ) { . . . } int main() { func(1, 2, 3); func(1, 2, 3, 4); }需要注意的是,函数 func() 有 ... 阅读更多
59 次查看
C 库函数 int mbtowc(whcar_t *pwc, const char *str, size_t n) 将多字节序列转换为宽字符。以下是 mbtowc() 函数的声明。int mbtowc(whcar_t *pwc, const char *str, size_t n)参数为:pwc − 这是指向 wchar_t 类型对象的指针。str − 这是指向多字节字符第一个字节的指针。str − 这是指向多字节字符第一个字节的指针。n −这是要检查的字符长度的最大字节数。返回值为:如果 str 不为 NULL,则 mbtowc() 函数返回 ... 阅读更多