首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言標準庫函數速查:N、O 開頭函數詳解

     編輯:關於C語言

C語言標準庫函數速查:N、O 開頭函數詳解

本文繼續整理 C 語言標準庫中以 N 與 O 開頭的實用函數,涵蓋控制台屬性控制、聲音控制、文件操作、硬件端口訪問、圖形文本輸出等領域,提供標準語法與完整代碼示例,助力開發者高效查閱。

控制台文本屬性控制

normvideo - 恢復正常文本亮度

函數原型: void normvideo(void);

功能: 將文本屬性(前景色與背景色)恢復為程序啟動時的默認值,選擇標準字符顯示模式。

lowvideo / highvideo - 亮度切換

配合 lowvideo()(低亮度)與 highvideo()(高亮度)可實現文本亮度的動態切換,常用於突出顯示關鍵信息。

聲音控制

nosound - 關閉蜂鳴器

函數原型: void nosound(void);

功能: 停止由 sound() 函數啟動的 PC 喇叭發聲。

文件操作

open - 打開文件

函數原型: int open(const char *pathname, int flags, ... /* mode_t mode */);

功能: 打開或創建文件,返回文件描述符。常用標誌:O_RDONLY、O_WRONLY、O_RDWR、O_CREAT、O_TRUNC、O_APPEND 等。

示例:

#include <fcntl.h>
#include <io.h>
#include <stdio.h>
#include <string.h>

int main(void) {
    int handle;
    char msg[] = "Hello world";
    if ((handle = open("TEST.$$$", O_CREAT | O_WRONLY | O_TRUNC, S_IREAD | S_IWRITE)) == -1) {
        perror("Error:");
        return 1;
    }
    write(handle, msg, strlen(msg));
    close(handle);
    return 0;
}

硬件端口訪問 (DOS/嵌入式環境)

outport - 輸出字到端口

函數原型: void outport(int port, int value);

功能: 將 16 位整數輸出到指定 I/O 端口。

outportb - 輸出字節到端口

函數原型: void outportb(int port, unsigned char value);

功能: 將 8 位字節輸出到指定 I/O 端口,常用於硬件控制編程。

示例:

#include <dos.h>
#include <stdio.h>

int main(void) {
    int port = 0x378; // 並口基址
    unsigned char value = 0x55;
    outportb(port, value);
    printf("Value 0x%X sent to port 0x%X\n", value, port);
    return 0;
}

圖形模式文本輸出 (BGI)

outtext - 在當前位置輸出字符串

函數原型: void far outtext(const char far *textstring);

功能: 在圖形模式下,從當前位置 (CP) 開始輸出字符串,輸出後 CP 移動到字符串末尾。

outtextxy - 在指定座標輸出字符串

函數原型: void far outtextxy(int x, int y, const char *textstring);

功能: 在指定座標 (x, y) 輸出字符串,不改變 CP 位置。

示例:

#include <graphics.h>
#include <stdio.h>

int main(void) {
    int gdriver = DETECT, gmode, errorcode;
    initgraph(&gdriver, &gmode, "");
    errorcode = graphresult();
    if (errorcode != grOk) {
        printf("Graphics error: %s\n", grapherrormsg(errorcode));
        return 1;
    }
    int midx = getmaxx() / 2;
    int midy = getmaxy() / 2;
    outtextxy(midx, midy, "Centered Text");
    getch();
    closegraph();
    return 0;
}

應用場景提示:

  • normvideo/lowvideo/highvideo:適用於 DOS 控制台程序的文本界面美化。
  • open/close/read/write:底層文件操作,適合需要精確控制文件指針、權限的場景。
  • outport/outportb:嵌入式開發、硬件調試、舊式 DOS 硬件控制程序。
  • outtext/outtextxy:BGI 圖形庫繪製界面、數據可視化標註。

掌握這些函數,能讓你在系統級編程、硬件交互、圖形界面開發中更加得心應手。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved