二 單行多項資料
三 多行多項資料
標頭檔案:#include
// eg:
int _int;
// input(控制台的輸入): 10
cin >> _int;
// : _int = 10
char _char;
// input: asd
cin >> _char;
// : _char = 'a'
// 對於string類字串,會在遇到空白、製表符、換行符等處停止。
string _string;
// input: asd dsa
cin >> _string;
// : _string = "asd";
標頭檔案**#include **
get() 進行單字元讀取,get()函式讀取乙個輸入字元(包括數字、大小寫字母、空白、換行符、製表符等,不進行轉換,讀到啥就是啥)
區別項達到檔案尾時函式的返回值
達到檔案尾時函式的返回值
輸入特徵
達到檔案尾時函式的返回值
把函式返回值賦值給ch
讀取字元之後函式返回至
指向istream物件的引用
字元編碼,int值
達到檔案尾時函式的返回值
轉換為 false
eof常用的過載:
cin.
get(ch)
// ch:char型的引用,把值直接賦值給ch
cin.
get(ch, len +1,
'a')
// 第二個引數:控制最大讀取字元數,為存放字串末尾的'\0',此引數要比讀取的字串大一;
// 第三個引數:分割符,(預設為'\n', 即省略了第三個引數)
get()函式 沒有實現對string物件的直接讀取。
// eg:
char ch;
// input: asd
cin.
get(ch)
;// : ch = 'a';
char _char[10]
;// input: sdsdsdafd
cin.
get(_char,10+
1,'a')
;// _char = "sdsdsd",之後游標停留在 'a' 處。
cout << _char << endl;
標頭檔案:
#include
#include// 對string物件直接的處理
getline()函式會自動丟棄換行符等分界符。
常用的過載:
cin.
getline
(char
, len +1,
'a')
;cin.
getline
(char
, len +1)
;
對於string物件的字串, getline()函式 定義在string標頭檔案中。
// eg:
char ch;
char _char[10]
;// input: sdsdsdafd
cin.
getline
(_char,10,
'a')
;// _char = "sdsdsd",之後游標停留在 'f'處。
cout << _char << endl;
cin.
get(ch)
;cout << ch << endl;
string _string;
getline
(cin, _string)
;getline
(cin, _string,
'a')
;
// eg:
int _int;
scanf
("%d"
,&_int)
;
istringstream
copy()
istream_iterator()
情況劃分:分隔符的表示,個數是否已知(n)。
i: 分隔符為空白符,個數已知
ii: 分隔符為空白符,個數未知
// istringstream + copy
string temp;
getline
(cin, temp)
;istringstream is
(temp)
;vector _v;
copy
(istream_iterator
(is)
, istream_iterator()
,back_inserter
(_v)
);
不使用copy函式的話:
對於 i:
// cin>>
/* input: 11 12
input: a b
input: asd dsa
*/// template
vector _vs;
t temp;
for(
int _n =
0; _n < n;
++_n)
對於 ii:
// getline() && class istringstream
// #include
/* input: a bc def ghij
*/string temp;
getline
(cin, temp)
;istringstream is
(temp)
;string part;
vector _v;
while
(is >> part)
iii: 分隔符不為空白符,個數已知
iv: 分隔符不為空白符,個數未知
string temp;
getline
(cin, temp)
;istringstream is
(temp)
;string part;
vector result;
while
(getline
(is, part,
';')
)
eg1:
/*
input:
[1,2,3,4,5,6]
*/vector<
int> result;
string temp;
cin.
get();
getline
(cin, temp,
']')
;istringstream is
(temp)
;string part;
while
(getline
(is, part,
',')
)
eg2:
/*
input:
3 1,10;32,45
78,94;5,16
80,100;200,220;16,32
*/int m;
cin >> m;
cin.
get();
vectorint,
int>
> result;
for(
int _m =
0; _m < m;
++_m));
}}
eg3:
/*
輸入描述:第一行兩個數,第乙個數字表示使用者的數目,第二個數字表示需要判斷的使用者序號。
第2 至 n+1 行表示序號為0到n-1的每個使用者的朋友的序列列表。
例如:input
5 01 2 3
0 40 4
0 41 2 3
*/int n =0;
int m =0;
cin >> n >> m;
cin.
get();
vectorint>
>
result
(n);
for(
int _n =
0; _n < n;
++_n)
面試 C 輸入資料
最近在做筆試題,相比與leetcode,筆試題都是要自己寫輸入輸出的,每次在這裡都浪費了不少時間,這篇文章總結了一下在c 中怎麼向陣列中輸入資料。1.先輸入陣列大小,然後輸入資料資料,中間以空格或者 n 字元隔開 1 2 兩種輸入方式 3 3 4 1 2 3 5 6 3 7 1 8 2 9 3 10...
整理 C 基礎 cin輸入
參考input輸入操作符 對型別敏感,也就是說它根據待輸入的變數的型別來輸入。比如 int main 如果,鍵入kathy 18,操作符會將kathy讀入name,18讀入age。為什麼不會將整個輸入kathy 18讀入name呢?這是因為對字串的讀取終止於空格,比如單個空格 換行或者tab字元。此...
C 面試整理之二
1.五大設計原則 1 單一職責原則 乙個類只負責一項職責。2 介面隔離原則 乙個類對另乙個類的依賴應該建立在最小的介面上,不應該依賴它不需要的介面。3 黎克特制替換原則 使用基類的地方可以透明地使用其子類的物件。4 依賴倒置原則 高層模組不應該直接依賴低層模組,而應該依賴其抽象。5 開閉原則 對擴充...