我的隨行筆記4 C++ Primer Plus
1、strcmp( ):比較兩個字串,相同返回0;第一個字串按字母順序排在第二個字母之後將返回負值;
2.型別別名:
#define BYTE char //使用前處理器,用char替代所有的BYTE,BYTE是char的別名
typedef char byte //使用關鍵字typedef ,byte是char的別名。typedef不會建立新型別
3. C++11中基於範圍的for迴圈,對陣列(或vector,array)的每個元素執行相同的操作:
double prices[5]= {4.99,5.6,2.13,2.69,7.34};
for (double x : prices) {cout<<x<<std::end;}
for (double &y : prices) { y=y*0.8; } // 要修改陣列元素時,迴圈變數要取地址,改為&y
4、cin() 忽略空格和換行符,cin.get()中包含空格、製表符、換行符。
cin.get(name,size).get();
5、檢測檔案尾(EOF) :檢測到EOF,cin.eof() 或cin.fail() 將返回bool值true,否則返回bool值 false;
6.字元輸入做法:
char ch; cin.get(ch); while (cin.fail()==false) { .... cin.get(ch); } //或者while (!cin.fail()) 或while (cin)
char ch; while (cin.get(ch)) { ... }
int ch; ch=cin.get(); while ( ch!=EOF ) { ... ch=cin.get(); }
int ch; while((ch = cin.get() ) != EOF) { }
更常用,拼接字串:cin.get(ch1).get(ch2);
7.邏輯運算子|| 邏輯運算子&&
!的優先順序大於邏輯運算子和關係運算子(> < =), &&優先順序大於|| ,關係運算子優先順序大於 &&,||
8.定義二維字串陣列方式:
(1)char指標陣列: char * cities[3]={"Beijing", "TianJin", "ShangHai"};
(2)char陣列的陣列 char cities[3][10]={"Beijing", "TianJin", "ShangHai"};
(3)string物件陣列 string cities[3]={"Beijing", "TianJin", "ShangHai"};
希望字串可以修改的情況下,string類可以自動調節大小更方便。
9.switch語句,while語句中,將int值與列舉量標籤進行比較時,列舉量將提升為int。
switch語句中每一個case的標籤必須是int或char,還必須是常量
10.continue :跳出迴圈剩餘部分,執行新的一輪迴圈
break :跳出迴圈剩餘部分,不在執行迴圈語句
switch一般與break組合使用
int chice[3]={0,1,2};
switch (choice){case 0: ... break; case 1: ... break; case 2: ... break; }
11.int n[6]; for(i=0;i<6;i++){
cout<<"round "<<i+1<<" : ";
while(!(cin>>n[i])){ //當輸入不是字元時,執行下面迴圈
cin.clear(); // 如果輸入的是字元,不是數字時,應利用cin.clear() 重置cin以接受新的輸入。
while (cin.get() != '\n') continue; //while中用cin.get() 讀取行尾之前的輸入,從而刪除這行錯誤輸入
cout<<"Pleae enter a number: ";
} }
12.寫入文字檔案檔案輸出:必須包含標頭檔案 #include<fstream>,需要宣告一個或多個ofstream物件,將ofstream物件與檔案關聯用open()方法。使用完檔案用close()關閉。可以使用ofstream物件和運算子<<來輸出各種型別的資料。(和cout類似)
#include "stdafx.h"
#include<iostream>
#include<fstream>
int _tmain()
{
using namespace std;
char automobile[50];
int year;
double a_price,d_price;
ofstream outfile; //建立一個輸出的ofstream物件,可以像使用cout一樣使用outfile
outfile.open("carinfo.txt"); //關聯的檔案,建立一個名為carinfo.txt的檔案
cout << "Enter the make and model of automobile: ";
cin.getline(automobile, 50);
cout << "Enter the model year: ";
cin >> year;
cout << "Enter the original asking price: ";
cin >> a_price;
d_price = 0.913*a_price;
cout << fixed;
cout.precision(2); //設定顯示精確度為2位並返回上一次的設定。
cout.setf(ios_base::showpoint); //顯示浮點數小數點後的0;
cout << "Make and Model: " << automobile << endl;
cout << "Year: " << year << endl;
cout << "Was asking $" << a_price << endl;
cout << "Now asking $" << d_price << endl;
outfile << fixed; //可以像使用cout一樣使用outfile
outfile.precision(4); 設定輸出精確度為4位並返回上一次的設定。
outfile.setf(ios_base::showpoint);
outfile << "Make and Model: " << automobile << endl;
outfile << "Year: " << year << endl;
outfile << "Was asking $" << a_price << endl;
outfile << "Now asking $" << d_price << endl;
outfile.close(); //關閉檔案
return 0;
}
13.讀取文字檔案:必須包含標頭檔案 #include<fstream>,需要宣告一個或多個ifstream物件,將ifstream物件與檔案關聯用open()方法。使用完檔案用close()關閉。可以使用ifstream物件和運算子>>來讀取各種型別的資料。
可以使用ifstream物件和get()方法來讀取一個字元。使用ifstream物件和getline()方法來讀取一行字元。
使用ifstream物件和eof() 、fail()等方法來判斷輸入是否成功
ifstream物件本身作為測試條件時,如果最後一個讀取操作成功,它將會被轉化為bool值true.(和cin類似)
檢查檔案是否被成功開啟用方法is_open();
#include "stdafx.h"
#include<iostream>
#include<fstream>
#include<cstdlib> //支援exit()
const int SIZE = 60;
int _tmain()
{
using namespace std;
char filename[SIZE];
ifstream infile;
cout << "Enter name of data file: ";
cin.getline(filename, SIZE); //輸入要讀取的檔名
infile.open(filename);
if (!infile.is_open()) //檢查檔案是否被成功開啟
{
cout << "Could not open the file" << endl;
cout << "Program terminating.\n";
exit(EXIT_FAILURE);
}
double value;
double sum = 0.0;
int count = 0;
infile >> value; //在迴圈外讀取第一個值
while (infile.good()) //讀取輸入操作成功且未到達EOF
{
++count;
sum += value;
infile >> value; //讀取下一個值
}
if (infile.eof()) //判讀是否達到EOF
cout << "End of file read.\n";
else if (infile.fail()) //可以檢測EOF或型別不匹配
cout << "Input terminated by data mismatch.\n";
else
cout << "Input terminated by unkonwn reason.\n";
if (count == 0)
cout << "No data processed.\n";
else
{
cout << "Item read: " << count << endl;
cout << "Sum: " << sum << endl;
cout << "Average: " << sum / count << endl;
}
infile.close();
return 0;
}
infile >> value; //在迴圈外需進行一次讀取
while (infile.good()) //
{ .......
infile >> value; //讀取下一個值
}
以上這一部分等效於
while (infile>>value) //讀取並測試是否成功
{ ...... }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2715136/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我的隨行筆記11 C++ Primer Plus筆記C++
- 我的隨行筆記10 C++ Primer Plus筆記C++
- 我的隨行筆記9 C++ Primer Plus筆記C++
- 我的隨行筆記8 C++ Primer Plus筆記C++
- 我的隨行筆記6 C++ Primer Plus筆記C++
- 我的隨行筆記5 C++ Primer Plus筆記C++
- 我的隨行筆記7 C++ Primer Plus筆記C++
- 我的隨行筆記2 C++ Primer Plus筆記C++
- 我的隨行筆記3 C++ Primer Plus 3--指標筆記C++指標
- C++ Primer Plus隨記1C++
- C++ Primer Plus 隨記(第八章)C++
- C++ primer Plus學習筆記(第二章)C++筆記
- C++ Primer筆記C++筆記
- C++ Primer Plus(一)C++
- C++ Primer Plus(四)C++
- C++ Primer Plus(三)C++
- 【C++ Primer Plus】學習筆記--第10章 物件和類C++筆記物件
- C++ Primer Plus 第四章 複合型別 學習筆記C++型別筆記
- C++ Primer Plus 第六版C++
- c++ primer 第二章閱讀筆記C++筆記
- element-plus隨筆
- C++入職隨筆day4C++
- 《C++ Primer》學習筆記(八):標準 IO 庫C++筆記
- 《C++ Primer》學習筆記(六):C++模組設計——函式C++筆記函式
- C Primer Plus(三)
- 黑馬筆記--C++基礎篇--隨筆筆記C++
- 《C++ Primer》讀書筆記(第一章 開始)C++筆記
- C++ Primer 5th筆記(5)chapter5 語句C++筆記APT
- C++ Primer 第二章 學習筆記及習題答案C++筆記
- C++ Primer plus 第12章類和動態記憶體分配複習題參考答案C++記憶體
- 筆記:《C++ Primer 中文版(第5版)》 第1章 開始筆記C++
- 隨筆記筆記
- 《C Primer Plus》,362頁勘誤
- c++ primer 之stringC++
- 隨堂筆記筆記
- 《C++ Primer中文版(第5版)》學習筆記與習題完整發布!C++筆記
- 隨記筆記未整理筆記
- MyBatis-Plus筆記(入門)MyBatis筆記