關於輸入 輸出字元 串 的一些細節問題

2022-07-15 15:45:09 字數 535 閱讀 4042

(1)關於scanf

scanf("%s",s)/*假設s為字元型陣列*/,該函式遇到回車或空格輸入結束,並自動將輸入的資料和字串結束符'\0'輸入陣列中。這裡特別需要注意一點的是輸入單個字元,即scanf("%c",c)時,在其後面最好習慣性加上乙個getchar()來**回車,因為程式遇到scanf()時不是直接要使用者輸入,而是先看輸入緩衝區內是否還有東西,像「空格、回車」都在讀取之列。

(2)關於gets(s)

引數s是陣列名,函式從輸入得到乙個字串,遇到回車輸入結束,自動將輸入的資料和字串結束符'\0'輸入陣列中。實際上函式gets()有返回值,如果輸入成功時其返回值為字串第乙個字元的位址。

值得注意的是gets()函式可能會輸入過多字元,導致陣列越界,在程式執行時出現錯誤。

(3)  關於printf()

該函式遇到'\0'結束;

(4)關於puts()

輸出遇'\0'自動將其轉換為'\n',即輸出字串後換行。

輸入輸出字元和字串總結

scanf輸入單個字元 char letter scanf c letter scanf輸入字串 給數值型陣列賦值時,只能用for迴圈乙個乙個的賦值,但是字元陣列賦值時可以直接賦值,不需要使用迴圈,系統會在最後新增結束標誌符 0 char a 30 scanf s a 可以有 也可以沒有 inclu...

輸入輸出流的一些細節問題

1 寫文字檔案 第乙個引數 寫入檔案需要指定檔名,如果不指定的檔案不存在,會自動建立檔案 如果存在,會自動覆蓋以前的內容。第二個引數 指定檔案是否以追加的方式寫入檔案。filewriter fw null try fw.write c catch ioexception e finally catc...

字串的輸入輸出

1.字串陣列 初始化 char s1 array 字元陣列 char s2 6 array 陣列長度 字串長度 1,因為字串末尾會自動添 0 printf s,c n s1,s2 2 2.字串指標 初始化 char sp pointer 字元指標 printf s,c,c n sp,sp,sp 2 ...