使用預處理器進行調試
阿新 • • 發佈:2018-07-09
add 技術分享 font lin emp date iostream use demo
一、預處理指令
問題:輸入一些WORD,判斷有沒有首字母大寫的兩個相同的詞
1 #include<iostream> 2 #include<string> 3 4 using namespace std; 5 6 int main() 7 { 8 string currWord, preWord; 9 cout << "Enter some words:(ctrl+z to end)" << endl; 10 while (cin >> currWord) 11 { 12 #ifndef NDEBUG13 cout << endl << "調試:" << currWord << endl; //這是調試用的 14 #endif 15 if (!isupper(currWord[0])) 16 continue; 17 if (currWord == preWord) 18 break; 19 else preWord = currWord; 20 } 21 if (currWord == preWord&&!currWord.empty())22 { 23 cout << "The repeated word:" << currWord << endl; 24 } 25 else 26 cout << "沒有重復的!" << endl; 27 system("pause"); 28 }
關閉預處理:
解決資源方案--demo--右鍵“屬性”--c++--命令行----附加選項:/DNDEBUG
結果:
二、預處理常量
1 #include<iostream> 2 #include<string> 3 4 using namespace std; 5 6 int main() 7 { 8 cout << "文件:" << __FILE__ << endl<<"行:" << __LINE__ << endl<<"日期:" << __DATE__ << endl<<"時間:" << __TIME__ << endl; 9 system("pause"); 10 }
三、assert斷言
1 #include<iostream> 2 #include<assert.h> 3 4 using namespace std; 5 6 int add(int x, int y) 7 { 8 return x * y; 9 } 10 int main() 11 { 12 int result; 13 result = add(1, 2); 14 assert(result == 3); 15 cout << result << endl; 16 system("pause"); 17 }
斷言也用來調試,與預定義一樣,受附加選項/DNDEBUG控制
使用預處理器進行調試