從頭再來 記錄一些小問題

2021-10-19 18:23:52 字數 2372 閱讀 8732

ch = getchar();

只能接受單個字元, 輸入的數字按照字元處理

輸入多於乙個字元時,只接收第乙個字元

getchar直到按回車鍵才結束,可用於暫停程式的執行,直到收到下乙個回車鍵

程式中有兩個以上的getcar函式,應該一次性輸入所有字元,再按回車否則會把回車傳給後面的函式

通常使用換行符\n,在其他情況下則使用控制符endl。乙個差別是,endl確保程式繼續執行前重新整理輸出(將其立即顯示在螢幕上);而使用「\n」不能提供這樣的保證,這意味著在有些系統中,有時可能在您輸入資訊後才會出現提示。

備註:endl --->end line

對於有輸出緩衝的流(例如cout、clog),如果不手動進行緩衝區重新整理操作,將在緩衝區滿後自動重新整理輸出。不過對於cout來說(相對於檔案輸出流等),緩衝一般體現得並不明顯。但是必要情況下使用endl代替'\n'一般是個好習慣。

對於無緩衝的流(例如標準錯誤輸出流cerr),重新整理是不必要的,可以直接使用'\n'。

由於直接輸入/輸出和作業系統相關,可能需要切換核心態/使用者態,需要一定的時間開銷,頻繁地進行操作會極大地降低輸入/輸出的效率,所以標準庫對流的輸入/輸出操作使用緩衝。具體來講,就是在記憶體中儲存乙個大小相對固定的區域(緩衝區)用來儲存臨時的輸入或輸出。當必要時,才向系統裝置複製緩衝區的內容並清空緩衝區,這個過程稱為重新整理。

【命令格式】

file * freopen(const char * filename, const char * mode ,file * stream)

[解釋] mode 有「w」或「r」;stream的意思是檔案指標 stdin  stdout  stderr標準錯誤流

最後需要關閉檔案,使用 fclose(stdin); fclose(stdout);

string類本不是stl的容器,但是它與stl容器有著很多相似的操作,因此,把string放在這裡一起進行介紹。 

之所以拋棄char*的字串而選用c++標準程式庫中的string類,是因為他和前者比較起來,不必擔心記憶體是否足夠、字串長度等等,而且作為乙個類出現,他整合的操作函式足以完成我們大多數情況下的需要。我們盡可以把它看成是c++的基本資料型別。 

首先,為了在我們的程式中使用string型別,我們必須包含標頭檔案。如下: #include

1)  string s;  // 生成乙個空字串s 

2) string s(str) ; // 拷貝建構函式生成str的複製品

3) string s(str, stridx); // 將字串str內"始於位置stridx"的部分當作字串的初值

4) string s(str, stridx, strlen) ; // 將字串str內"始於stridx且長度頂多strlen"的部分作為字串的初值

5) string s(cstr) ; // 將c字串(以null結束)作為s的初值

6) string s(chars, chars_len) ; // 將c字串前chars_len個字元作為字串s的初值。

7) string s(num, 『c』) ; // 生成乙個字串,包含num個c字元

8) string s(「value」); string s=「value」; // 將s初始化為乙個字串字面值副本

9) string s(begin, end); // 以區間begin/end(不包含end)內的字元作為字串s的初值

10) s.~string(); //銷毀所有字元,釋放記憶體

string用法比較方便,string的物件可以直接相加減

6.最小生成樹的板子調了很久,原來是點數和邊數搞錯了啊!!注意區分點數和邊數。

現在連一道模板的兒分題都寫不對了,我現在真是廢了

首先乙個錯誤就是沒有看清楚輸出格式,要求空格但是我換了行。

在寫mid = (l + r) / 2; 之後,由於是整除,mid的值可能比以前的變小了,所以 l = mid + 1;

9.切方格這個題目,首先是理解錯了題意。題目只要求,分成兩個部分,我理解成了分成多個部分,並且每個部分和都是60;我又理解成了這兩個部分是連續的,其實是不必連續的。

vector是宣告向量容器;

例如 verctorv,就是建立了乙個名字叫v的向量容器。

vector::iterator是定義向量迭代器

例如,vector::iterator it  就是定義了乙個名字叫it 的向量迭代器

for(it=v.begin();it!=v.end();it++)

cout<<*it<

就把vector向量型別的向量v中的int資料都輸出了

vector是向量型別,而vector::iterator是向量的迭代器型別,vector::iterator用於迭代vector中的int資料

記錄一些小問題

1 關於mysql replace用法 update biaozhun set province replace province,縣 縣縣 作用 將biaozhun表裡的province欄位中的縣換為縣縣 字串擷取 update biaozhun set province substring in...

一些小問題

1 曼徹斯特編碼和差分曼徹斯特編碼。曼徹斯特編碼,常用於區域網傳輸。在曼徹斯特編碼中,每一位的中間有一跳變,位中間的跳變既作時鐘訊號,又作資料訊號 從高到低跳變表示 1 從低到高跳變表示 0 還有一種是差分曼徹斯特編碼,每位中間的跳變僅提供時鐘定時,而用每位開始時有無跳變表示 0 或 1 有跳變為 ...

一些小問題

問1 子類繼承了父類的所有成員,對嗎?答1 錯,至少子類沒有繼承父類的建構函式 析構函式不知有沒有繼承,但複製建構函式肯定是繼承了 class a a intx a const a a a operator const a a class b public a intmain view code 問...