1 程式元素 標準輸入輸出

2021-10-22 12:23:38 字數 2717 閱讀 8753

一、

1、字串變數:

char name[20];//字串宣告

/*c 庫函式 void *memset(void *str, int c, size_t n)

複製字元 c(乙個無符號字元)到引數 str 所指向的字串的前 n 個字元。*/

memset(name,0,sizeof(name));//字串初始化

strcpy(name,"西施");//字串賦值

2、sizeof()運算,當sizeof的運算元是表示式時,則在編譯時分析表示式以確定型別,執行時不對這個表示式求值。3、強制型別轉換

(型別名) 運算元,例如表示式 (long)('a'-32)  首先將'a'自動轉換成int,然後和32相減,結果被強制轉換為long。

4、符號常量(通常用大寫字母表示)

(1)用#define指令定義乙個符號常量。定義的識別符號沒有對應的儲存單元,只在編譯之前由預處理程式進行簡單的文字替換。

#define 識別符號 常量

(2)用const宣告語句定義乙個符號常量。const成為型別限定符,宣告的變數為唯讀變數,編譯時系統會根據定義的型別為該識別符號在唯讀儲存區分配儲存單元,並把對應的常量值放入其中,其值不能再更改。

const  型別名 識別符號=常量;

(3)用列舉型別定義一組符號常量。

enum week we1,we2;//第乙個列舉常量的值為0,以後的值依次遞增1,未指定的列舉常量的值比前面的值大1

enum week we1,we2;//乙個列舉變數的值是int型整數,值域僅限於列舉出來的範圍,且只能是整數

5、布林型別

c99標準引入了真正的布林型別_bool,_bool型別的長度為1,只能儲存數值0和1(分別表示false和true)。

c99標準為了讓c和c++相容,增加了乙個標頭檔案stdbool.h,裡面定義巨集名bool為_bool的同義詞。

6、複數型別

_imaginary表示只有乙個實數組成的純虛數,_complex表示為對應實數型別的二元陣列

在說明複數型別時,需要用浮點型別名進一步指定對應實數型別:float _complex、double _complex、long _complex/_imaginnary

c99標準引入了標頭檔案complex.h,其中定義complex巨集為關鍵字_complex的同義詞,定義imaginary為關鍵字_imaginary的同義詞。

二、1、eof是在標頭檔案stdio.h中定義的乙個符號常量,其值為-1,用作檔案結束標誌(end of file)。在windows、dos系統中,終端鍵盤輸入ctrl+z,unix系統中輸入ctrl+d。

2、(1)字元輸出函式putchar:

原型:int putchar(int c);

(2)字元輸入函式getchar:

原型:int getchar(void);

(3)字串輸出函式puts

原型:int puts(const int *s);

引數s是要存放所要輸出字串的記憶體緩衝區的首位址,型別位字元指標。puts函式從s所指定的位址讀取字串輸出到標準輸出裝置,並在串尾輸出乙個換行符'\n'(自動換行)。

字串在記憶體緩衝區儲存時串尾以空字元'\0'作為結束標誌,puts取字串時從s指定的記憶體區依次取字元直至取到空字元為止。

呼叫:puts(s);

s為實際引數,可以是字串常量、字元陣列名、或指向某字串的字元指標變數。

(4)字串輸入函式gets     gets_s

原型:char *gets(char *s);

呼叫:gets(s);

gets從輸入流中讀取一行字元存放到s指定的記憶體緩衝區,結尾的換行字元『\n』被空字元『\0』替換,以作為字串的結束標誌。輸入流中的一行字元是從輸入流的第乙個字元開始知道其後的第乙個換行符'\n'為止的字串行。函式正確執行時返回該記憶體緩衝區的首位址,即s的值;如果遇到檔案尾或出錯,則返回空指標null。

gets()可以無限讀取,易發生溢位。如果溢位,多出來的字元將被寫入到堆疊中,這就覆蓋了堆疊原先的內容,破壞乙個或多個不相關變數的值,由於可以無限讀取,所以在2023年12月,ansi 採納了 iso/iec 9899:2011 標準,標準中刪除了 gets()函式,使用乙個新的更安全的函式gets_s()替代。

(5)格式化輸出函式printf

printf函式的返回值是函式呼叫時實際輸出到標準輸出裝置的字元個數

(6)格式化輸入函式scanf

若需讀入一非空白字元,可使用%1s。

double型別浮點數要用轉換說明%lf,short要用%hd,long要用%ld,long double要用%ld。

scanf函式只能輸入不包含空白字元的字串。如果需要輸入乙個帶空白字元的字串,可以用gets實現。

「虛讀」:如果在某個轉換字元前使用了「*」,則與該轉換說明對應的輸入域被跳過。例如:scanf("%*d %d",&n1,&n2);則n1被略過

標準輸入輸出

linux的大部分命令都具有標準的輸入輸出埠,有哪些標準裝置資訊?名稱 檔案描述符 含義裝置 說明stdin 0標準輸入 鍵盤命令在執行時所需要的輸入資料,通過它來獲取 stdout 1標準輸出 顯示器命令在執行後所產生的輸出資料,通過它來送出 stderr 2標準錯誤 顯示器命令在執行後所產生的錯...

標準輸入輸出

目錄流緩衝 格式輸出 格式輸入 目錄流緩衝 格式輸出 格式輸入 記錄下,了解概念。當用流或檔案描述字i o函式開啟乙個檔案時,分別返回乙個流或檔案描述字,後面就可以將這個流或檔案描述字作為引數交給相應讀寫函式來完成實際的讀寫操作。通過關閉檔案可以終止程式與檔案的連線。檔案描述字表示為int型別的物件...

python標準輸入輸出

sys模組 usr bin python2.6 import sysfor line in sys.stdin print line,先寫乙個指令碼,顯示行號和內容,之後引用它 usr bin env python import sys counter 1 while true line sys.s...