程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++語言學習——LRJ入門經典筆記,語言學習lrj

C++語言學習——LRJ入門經典筆記,語言學習lrj

編輯:C++入門知識

C++語言學習——LRJ入門經典筆記,語言學習lrj


1.scanf的輸入格式,空格、TAB和回車符都是無關緊要,所以按Enter鍵並不意味著輸入結束。

告訴程序輸入結束的方式:

在windows下,輸入完畢後先按Enter鍵,再按Ctrl+Z鍵,最後再按Enter鍵。

在linux下,輸入完畢後按Ctrl+D鍵

2.gcc 編譯選項

-Wall指出警告

-ansi 判斷是否和ANSI沖突

-pedantic 比ansi更加嚴格

-lm 鏈接數學庫, C++編譯器會自動鏈接

-DDEBUG 編譯時定義符號DEBUG,可以換成其它,如-DLOCAL將定義符號LOCAL

3.兩種使用文件輸入輸出的方法:重定向和fopen:

重定向示例:

freopen("data.in","r",stdin);
freopen("data.out","w",stdout);

fopen示例:

#include<stdio.h>
FILE *fin, *fout;
fin = fopen("data.in", "rb");
fout = fopen("data.out", "wb");
fscanf(fin, "%d", &x);
fprintf(fout, "%d", x);
fclose(fin);
fclose(fout);

4.使用printf和scanf輸入輸出long long在linux中gcc很統一的用%lld;在windows中,MinGW的gcc和VC6都需要用%I64d,但VS2008卻是用%lld

5.可以使用#define A B程序中的A全部替換成B

6.比較大的數組應盡量聲明在main函數外

7.使用fgetc(fin)可以從打開的文件fin中讀取一個字符。一般情況下應當檢查它不是EOF後再轉換成char值。

從標准輸入輸出取一個字符用getchar,相當於fgetc(stdin);

8.fgets(buf, MAXN, fin)將讀取完整的一行放在字符數組buf中,應當保證buf足夠存放下文件的一行內容。除了在文件結束前沒有遇到'\n'這種特殊情況外,buf總是以‘\n’結尾。當一個字符都沒有讀到時,fgets返回NULL。

fgets相比gets更安全,有MAXN限制。

getline: istream& getline(istream &is, string &str, char delim)

      istream& getline(istream &is, string &str)這種情況delim為換行

    getline會讀取delim並丟棄。

  例如getline(cin, name,'\n');

istream::getline :istream& getline(char *s, streamsize n) 這種情況delim為換行

         istream& getline(char *s, streamsize n, char delim)

   例如cin.getline(s,100,'\n');

9.頭文件ctype.h中定義的isalpha,isdigit,isprint等工具可以用來判斷字符的屬性,而toupper、tolower等工具可以用來轉換大小寫。

10.string.c_str()返回的內容是只讀的。

11.使用assert.h中的assert宏來限制非法函數調用

assert(x>0);

當x≤0時代碼將異常終止。

12.gdb用bt(backtrace)命令打印所有棧幀信息,up命令選擇上一個棧幀。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved