C语言标准的输入输出

目录

[1. 格式化输入输出](#1. 格式化输入输出)

[2. 控制字符串长度](#2. 控制字符串长度)

[3. 混合格式化输出](#3. 混合格式化输出)

[4. 格式化浮点数](#4. 格式化浮点数)

[5. 格式化日期和时间](#5. 格式化日期和时间)


在C语言编程中,输入输出格式非常重要,它决定了程序如何向用户展示数据以及如何从用户接收数据。本篇博客将介绍C语言输入输出格式的一些基本概念和技巧,并给出一些实例。

1. 格式化输入输出

C语言提供了`printf()`和`scanf()`两个用于格式化输入输出的函数。`printf()`函数用于向控制台输出格式化的数据,而`scanf()`函数用于从控制台读取格式化的数据。

下面是一个使用`printf()`输出格式化数据的例子:

```c

cpp 复制代码
#include <stdio.h>

int main() {
    int a = 10;
    float b = 3.14;

    printf("Integer value: %d\n", a);
    printf("Float value: %.2f\n", b);

    return 0;
}

```

在这个例子中,我们使用`%d`格式化整数`a`,使用`%.2f`格式化浮点数`b`。`%.2f`表示保留两位小数。

2. 控制字符串长度

在输出字符串时,可以使用`%ms`或`%ls`格式化字符串长度。其中,`ms`表示以字节为单位,`ls`表示以字符为单位。以下是一个例子:

```c

cpp 复制代码
#include <stdio.h>

int main() {
    char str[] = "Hello, World!";
    int len = strlen(str);

    printf("String length in bytes: %d\n", len);
    printf("String length in characters: %d\n", %ls);

    return 0;
}

```

3. 混合格式化输出

C语言允许在同一个`printf()`调用中混合输出不同类型的数据。以下是一个例子:

```c

cpp 复制代码
#include <stdio.h>

int main() {
    int a = 10;
    float b = 3.14;
    char c = 'A';

    printf("Integer value: %d\n", a);
    printf("Float value: %.2f\n", b);
    printf("Character: %c\n", c);

    return 0;
}

```

4. 格式化浮点数

在输出浮点数时,可以使用`%.2f`、`%.4f`等格式化表示保留小数点后几位。以下是一个例子:

```c

cpp 复制代码
#include <stdio.h>

int main() {
    float f = 3.1415926;

    printf("Float value with 2 decimal places: %.2f\n", f);
    printf("Float value with 4 decimal places: %.4f\n", f);

    return 0;
}

```

5. 格式化日期和时间

C语言提供了`%d`(日期)、`%H`(小时)、`%M`(分钟)和`%S`(秒)等格式化日期和时间的符号。以下是一个例子:

cpp 复制代码
#include <stdio.h>
#include <time.h>

int main() {
    time_t t = time(NULL);
    struct tm *local = localtime(&t);

    printf("Current date and time: %d-%02d-%02d %02d:%02d:%02d\n",
           local->tm_year + 1900,
           local->tm_mon + 1,
           local->tm_mday,
           local->tm_hour,
           local->tm_min,
           local->tm_sec);

    return 0;
}

通过以上示例,我们可以看到如何在C语言中进行格式化输入输出。熟练掌握格式化输入输出的技巧可以帮助我们编写更加清晰、易于理解的代码。

如果还有疑问,欢迎在评论区指出。

相关推荐
小巧的砖头14 小时前
使用SVN+CruiseControl+ANT实现持续集成之一
学习·算法
人道领域14 小时前
【LeetCode刷题日记】贪心算法理论与实战:455.分发饼干最优解
java·开发语言·数据结构·算法·leetcode·贪心算法
小O的算法实验室14 小时前
2026年ACM TCH,动态救护车路径优化:结合 K-means 聚类与多目标粒子群算法两阶段策略
算法
在书中成长14 小时前
HarmonyOS 小游戏《对战五子棋》开发第8篇 - GomokuEngine核心引擎设计(三):五子连珠判定算法
算法·华为·harmonyos
Let's Chat Coding15 小时前
MAC 消息认证码:同时验证来源和完整性
算法·哈希算法
cc.ChenLy17 小时前
算法从入门到精通实战指南
算法
Jerry1 天前
LeetCode 160. 相交链表
算法
Jerry1 天前
LeetCode 19. 删除链表的倒数第 N 个结点
算法
金銀銅鐵1 天前
费马小定理
python·数学·算法
技术不好的崎鸣同学1 天前
[ACTF2020 新生赛]Exec 思路及解法
算法·安全·web安全