C 面試輸入整理

2021-09-27 03:03:08 字數 4459 閱讀 8942

二 單行多項資料

三 多行多項資料

標頭檔案:#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 開閉原則 對擴充...