📜  输入输出接口介绍(1)

📅  最后修改于: 2023-12-03 14:57:53.556000             🧑  作者: Mango

输入输出接口介绍

概述

输入输出(IO)是计算机系统中与外部世界交换数据的重要方式。它允许程序读取外部数据,处理数据并输出结果。本文将会介绍一些常用的输入输出接口。

标准输入输出

在终端上使用程序时,我们可以通过控制台输入数据,同时也能在控制台上输出数据。这就是标准输入输出。在 C 语言中,我们可以通过如下方式使用标准输入输出:

#include <stdio.h>

int main()
{
    int num;
    printf("请输入一个整数:");
    scanf("%d", &num);
    printf("您输入的整数是:%d\n", num);
    return 0;
}

上述代码使用了 printf()scanf() 函数进行标准输入输出。printf() 函数用于输出数据,而 scanf() 函数用于输入数据。需要注意的是,scanf() 函数必须指定具体的格式化字符串以说明输入数据的类型。

文件输入输出

除了标准输入输出,我们还可以使用文件输入输出。文件输入输出允许程序读取或写入文件中的数据。在 C 语言中,我们可以使用标准库中的文件操作函数实现文件输入输出。

#include <stdio.h>

int main()
{
    FILE *fp;
    char str[100];

    /* 写入文件 */
    fp = fopen("test.txt", "w");
    fprintf(fp, "这是写入的文字\n");
    fclose(fp);

    /* 读取文件 */
    fp = fopen("test.txt", "r");
    fgets(str, 100, fp);
    printf("读取的字符串是:%s\n", str);
    fclose(fp);

    return 0;
}

上述代码中,我们使用 fopen(),fprintf()fclose() 函数实现了将字符串写入文件和从文件中读取字符串的操作。

网络输入输出

网络输入输出允许程序通过网络读取或写入数据。在网络编程中,我们通常使用套接字(socket)进行网络输入输出。以 Python 语言为例,我们可以通过如下方式使用套接字进行网络输入输出:

import socket

# 建立套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接服务器
s.connect(('www.example.com', 80))

# 向服务器发送数据
request = 'GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n'
s.send(request.encode())

# 接收服务器响应数据
response = s.recv(1024)

# 输出响应数据
print(response.decode())

# 关闭套接字
s.close()

上述代码中,我们使用 socket() 函数创建了一个套接字,并通过 connect() 函数连接至服务器。使用 send() 函数向服务器发送请求数据,并使用 recv() 函数接受服务器响应数据。最后使用 close() 函数关闭套接字。

数据库输入输出

数据存储是计算机系统中重要的一部分。数据库是一种数据存储方式,它可以对数据进行高效、可靠的存储和管理。在程序中,我们可以通过数据库输入输出,实现对数据库中数据的增删改查操作。以 Java 语言为例,我们可以使用以下代码实现数据库输入输出:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Main {
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "root");
            PreparedStatement pst = conn.prepareStatement("SELECT * FROM user WHERE id=?");
            pst.setInt(1, 1);
            ResultSet rs = pst.executeQuery();
            while(rs.next()) {
                System.out.println(rs.getInt(1) + " " + rs.getString(2));
            }
            conn.close();
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,我们使用 JDBC(Java Database Connectivity)连接至 MySQL 数据库,使用 PreparedStatement 执行 SQL 查询,并使用 ResultSet 遍历查询结果。注意:在使用 JDBC 连接数据库时,需要导入相应的 JDBC 驱动包。