C 中關於輸入要注意的點

2021-10-21 07:20:04 字數 1719 閱讀 7029

一、關於getline

string s

如果寫getline(cin,s),則預設s收入輸入的字串中換行符之前的內容,並且之後換行符會被丟棄,也就是說,如果在後面再加一句char c=getchar(),c是讀不到換行符的

getline(cin,s,c)也會把最後的c丟棄,而且該c不會被讀進s內,c預設是』\n』。

如果寫getline(cin,s,』%』),則%之前的換行符會被保留,讀進s,即:如果輸入

qwert

zxcv%qwerty

那麼s的內容將是

qwert

zxcv

例子:1.

注意:上面把雙引號也存進陣列了

2.(有點奇怪的例子)

二、關於get

get是不會丟棄換行符的,但是cin.get()只用於輸入字元陣列,不用於輸入string

例:char c[10];

cin.get(c,5)

輸入asdfghj之後c的內容為

之後再getchar()得到的是』\n』

三、關於cin>>

cin>>可以輸入任意型別,包括數值型、char、string、char,

注意:如果是分開一行行cin>>輸入的話不會讀取空格或換行符,也不會丟棄中間的空格和後面的換行符

但是如果是連著cin>>a>>b這樣輸入的話是會丟棄中間的空格的,但是不會丟棄後面的換行符

例:char a[10];

char b[10];

cin>>a>>b;

輸入asd wer,則之後a的內容為,b的內容為

string s;

string t;

char c[10];

cin>>s>>t>>c;

輸入asd wer yui,則之後s的內容為「asd」,t的內容為「wer」,c的內容為

之後再getchar()得到的是』\n』

例子:

注意:為保險起見while裡面可以寫成c!=eof&&c!=』\n』,避免這一行不是以eof結尾

四、關於getchar()

getchar()可以讀取換行符、空格

五、把已經讀取的字元放回標準輸入流裡——ungetc(c,stdin)

C 需要注意點

11 設定static成員變數初值時,不受任何訪問許可權的束縛。可以再還沒有誕生任何物件的時候就處理static型別成員變數,但首先必須初始化它。2 只要access level允許,任何函式都可以訪問static成員變數。但如果你希望在產生任何object之前就訪問其class的private s...

AutoLayout 中需要注意的點

本文用於記錄我在使用 autolayout 過程中遇到的一些需要注意的事情,一種是容易犯的錯誤,一種是我找不到原因的情況。如果預覽的樣式和你預想的不一樣,檢查一下是不是忘記給作為背景的 view 新增約束 上下左右 可能有乙個約束缺失,導致整體樣式出錯。在 scrollview 中通過 autola...

關於connect需要注意的一點

這次要談的是connect 函式,出現的問題同樣是因為某條語句寫在了在迴圈之外。socket socket af inet,sock stream,0 中間省略 while 1 按照上面的 執行,當第一次沒有連線上,再進行第二次的連線時,如果此時連線成功,程式接著執行,便會被訊號中斷。後來調查發現,...