在所有的內容都寫完后,運行時有幾處地方出現了錯誤,由于自己在vs軟件中不懂得如何進行調試,便上網查找了調試方式,用單步調試 的方法找到了對應出現錯誤的地方:
(1)在對客戶端輸入的密碼與數據庫中存放的密碼進行比較時,前者的類型是string型,而后者則是char*型內容,兩者類型不一樣不能進行直接的比較。
(2)客戶端從文件中讀取內容時崩掉,排除了許多原因后,最終發現在文件操作的結構體里面出現問題,結構體中的變量我用了string型,string很大,sizeof根本不可能讀出string變量的大小,所以系統便崩掉,后來將所有的string改成char型后就成功運行
(3)在往MySQL中存放數據時,崩掉,仔細查看了各變量的類型和大小以后確認沒有問題,查了一些資料, 可能是某些運行時的錯誤 ,某些數據輸入的不合理 或者數據太長越界等等 ,于是就將存放的數據類型擴大以后再次運行便成功了
(4)在對數據庫操作時,用了不少不規范的語句,導致數據庫無法正常打開進行各種操作,各種查找最后找到了正確的寫法,理解后進行編寫,最后成功運行
(5)和linux不同的是,c++在每個文件里加上相同的頭文件后,若任意兩個文件里有相同的內容或變量出現便會在編譯時顯示重定義,為此自己也是將原來的文件內容布局進行了較大的調整,用到全局變量的文件都放在一個里面,這樣編譯就通過
(6)時間函數:
int gettime(){ time_t rawtime ; struct tm*timeinfo ; time(&rawtime) ; timeinfo = localtime(&rawtime) ; PRintf("%s",asctime(timeinfo)) ; }char* mytime(){ time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); return asctime (timeinfo); }將時間函數調用到每個地方時需要周一時間的返回值類型
新聞熱點
疑難解答
圖片精選