C 语言输出流19


简介

输出流是 C 语言中用于将数据从程序写入外部设备(如控制台、文件或网络套接字)的一种机制。它提供了多种函数和宏来方便地执行此操作。

标准输出流

C 语言提供了 stdout 标准输出流,它默认指向控制台。可以使用 printf() 或 fprintf() 等函数向 stdout 输出数据。
#include
int main() {
printf("Hello, world!");
return 0;
}

文件输出流

要将数据写入文件,需要创建一个文件输出流。可以使用 fopen() 函数打开一个文件,该函数返回一个 FILE 指针,指向已打开的文件。
#include
int main() {
FILE *fp = fopen("", "w");
if (fp != NULL) {
fprintf(fp, "Hello, world!");
fclose(fp);
}
return 0;
}

网络输出流

C 语言还允许您创建网络输出流来将数据写入网络套接字。首先,需要使用 socket() 函数创建一个套接字,然后使用 connect() 函数将其连接到远程地址。
#include
#include
int main() {
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock != -1) {
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) != -1) {
// 写入数据到网络套接字
}
close(sock);
}
return 0;
}

格式化输出

printf() 和 fprintf() 函数支持格式化输出,允许您控制输出数据的格式。格式化字符串中可以使用以下格式说明符:
%d:十进制有符号整数
%u:十进制无符号整数
%c:字符
%f:浮点数
%s:字符串


#include
int main() {
int num = 10;
char c = 'a';
float f = 3.14;
printf("%d %c %f", num, c, f); // 输出:10 a 3.140000
return 0;
}

缓冲

输出流通常使用缓冲机制来提高性能。这意味着数据不会立即写入底层设备,而是先存储在缓冲区中。当缓冲区已满或程序显式调用 fflush() 函数时,数据才会被写入设备。

错误处理

输出函数通常返回一个表示写入的字符数的整数。如果函数返回 EOF,则表示发生了错误。

输出流是 C 语言中用于将数据写入外部设备的重要机制。它提供了灵活且易于使用的函数来执行各种输出任务。通过理解输出流的概念及其使用方法,您可以有效地在程序中处理数据输出。

2024-11-06


上一篇:C语言中函数返回值的类型

下一篇:C 语言时间输出:获取和显示日期和时间