C語言-控制程序的輸入輸出並設置參數

一.控制程序的輸入輸出
c語言編寫的小工具,操做系統會爲其分配三條數據流:一個標準輸入,一個標準輸出,一個標準錯誤輸出。
1.用戶也能夠經過編寫代碼控制輸入輸出的數據流數量
2.用戶可經過操做系統的命令設置輸入輸出目標是屏幕仍是文件,是鍵盤仍是文件
1.c語言標準輸入輸出(標準錯誤輸出)linux

fprintf(stdout,"xxxx");
等價於printf("xxxx");

stdout是標準輸出數據流
stderr時標準錯誤輸出數據流數組

fscanf(stdio, "xxxx"x &x);
等價於scanf("xxxx", &x);

stdio是標準輸入數據流函數

2.控制輸入輸出的數據流的數量工具

FILE * 數據流的名字 =fopen("輸入文件的名字""r");
FILE * 數據流的名字 =fopen("輸入文件的名字""w");
FILE * 數據流的名字 =fopen("輸入文件的名字""a");

fopen()函數建立新的數據流
w,r,a,參數對應的是讀,寫,追加spa

用完數據流須要關閉操作系統

fclose(數據流的名字);

一個進程最多有256條數據流unix

3.fgets函數的使用code

fgets函數功能爲從指定的流中讀取數據,每次讀取一行。blog

char food[5];
printf("Enter favorite food:");
fgets(food, 5, stdin);
food[strlen(food) - 1]='\0';

fgets括號裏面內容的意思:food(字符數組的名字),sizeof(food)接收字符的最大長度,stdin數據來自鍵盤
必需要搭配food[strlen(food) - 1]='\0';此句,將用戶輸入的有效字符的最後一位賦值爲\0。進程

 

與scanf比較,此函數能夠讓用戶輸入含有空格的字符串

4.用操做系統命令控制輸入輸出的目標
1.c語言寫的小工具在linux(類unix)系統上面利用數據流重定向來定義輸入輸出文件錯誤輸出文件的實例

./小工具 <須要輸入的文件 >輸出的文件名 2>標準錯誤輸出文件(不加這一項,則錯誤輸出會輸出到屏幕)

在小工具的c程序中,標準錯誤輸出的返回值設置爲2,因此將2引流入標準錯誤輸出

2.利用管道符號將多個c語言寫的小工具的標準輸入和標準輸出鏈接的實例

(1程序 | 2程序) <輸入文件 > 輸出文件

二.編寫代碼讓用戶能夠設置參數及選項

1.編寫代碼讓用戶能夠設置參數
讓用戶經過命令設置輸出文件的名字,以及參數

int main (int xxx, char * xxx[])

給main函數增長形參,用來接收用戶輸入的文件名字及參數
其中xxx爲變量名

2.編寫代碼讓用戶能夠設置選項
庫函數getopt()的使用
該函數頭文件爲:# include <unistd.h>
編寫代碼讓用戶能夠設置參數

getopt(鍵盤接收的參數數量,鍵盤接收的字符串參數,"xx:")

x表明程序選項
:表明該選項有參數,默認使用optarg指向這個參數

還須要設置

xxxx -= optiond;
xxxx += optiond;

其中xxx爲變量名

相關文章
相關標籤/搜索