❶ vc編譯器出現bug了,怎麼辦
是你的程序出現BUG吧……
======================
用了OFN_ALLOWMULTISELECT 的話貌似要自己指定一個接收文件名的緩沖區吧
TCHAR *buff=new TCHAR[1*1024*1024];
fileDlg.m_ofn.lpstrFile=buff;
fileDlg.DoModal();
......
.......
用完後
delete []buff;
❷ vc編譯器通過了,運行也不報錯,但出不來結果,求給看看bug在哪···
你的問題多多。
由於沒有aa.txt文本文件,沒法進行測試,能看出來的錯誤有:
1: fp=fopen("C:\\Users\\aa.txt","r");//這樣寫
2:x,y=t(x,y);//這種寫法不正確
3:return x,y;//一個函數只能有一個返回值,你這樣搞是沒用的,請使用指針
❸ Bug最少的C++編譯器是什麼
PC DOS/windows 編程用 VC++ 6.0 較好,6.0比較成熟。
linux/unix 用 gcc 較好.
任何一樣工具都會有缺欠,用其長處,避其短處。寫東西,要自己時不時地寫個備份,以免勞動力白花 -- 無論是BUG引起,或停電等別的引起。
❹ 為什麼程序會有bug
所謂「(Bug)」,是指電腦系統的硬體、系統軟體(如操作系統)或應用軟體(如文字處理軟體)出錯。硬體的出錯有兩個原因,一是設計錯誤,一是硬體部件老化失效等。軟體的錯誤全是廠家設計錯誤。那種說用戶執行了非法操作的提示,是軟體廠商不負責的胡說八道。用戶可能會執行不正確的操作,比如本來是做加法但按了減法鍵。這樣用戶會得到一個不正確的結果,但不會引起bug發作。軟體廠商在設計產品時的一個基本要求,就是不允許用戶做非法的操作。只要允許用戶做的,都是合法的。用戶根本就沒有辦法知道廠家心裡是怎麼想的,哪些操作序列是非法的。
從電腦誕生之日起,就有了電腦BUG。第一個有記載的bug是美國海軍的編程員,編譯器的發明者格蕾斯·哈珀(Grace Hopper)發現的。哈珀後來成了美國海軍的一個將軍,領導了著名計算機語言Cobol的開發。
1945年9月9日,下午三點。哈珀中尉正領著她的小組構造一個稱為「馬克二型」的計算機。這還不是一個完全的電子計算機,它使用了大量的繼電器,一種電子機械裝置。第二次世界大戰還沒有結束。哈珀的小組日以繼夜地工作。機房是一間第一次世界大戰時建造的老建築。那是一個炎熱的夏天,房間沒有空調,所有窗戶都敞開散熱。
突然,馬克二型死機了。技術人員試了很多辦法,最後定位到第70號繼電器出錯。哈珀觀察這個出錯的繼電器,發現一隻飛蛾躺在中間,已經被繼電器打死。她小心地用攝子將蛾子夾出來,用透明膠布帖到「事件記錄本」中,並註明「第一個發現蟲子的實例。」
從此以後,人們將計算機錯誤戲稱為蟲子(bug),而把找尋錯誤的工作稱為(debug)。
❺ 我的編譯器關於printf函數似乎有了BUG
首先說一下,Dev C++是IDE不是編譯器,它的編譯器應該是gcc
代碼應該是沒有問題的,檢查一下IDE和編譯器,更換一個gcc版本,或者試試Code::Blocks
❻ 如何看待王垠c 編譯器優化過程中的bug 知乎
這種男生其實就是想玩你其實他就是寂寞太久了,一般都不是真心的,需要直接了當的拒絕他不要給他幻想的機會。
❼ Devc++編譯器是不是有bug啊
這不是編譯器的bug,問題在這一句: *q++=*q+1;,這就叫未知行為語句,這一句裡面的q++到底在什麼時候產生副作用沒有標准,不同的編譯器,不同的環境下可能會有不同的做法。
你的預期是:
*q=*q+1;
q=q+1;
而devc++是這樣做的:
char& r=*q; //為方便說明問題定義一個引用
q=q+1;
r=*q+1; //於是當前字元被賦值為下一個字元的值+1
也就是說q++是在「=」賦值操作前起作用的
那麼最後一個字元j就會被賦值為'\0'+1,也就是整數1,你可以%d輸出下試試
避免這種情況的唯一辦法就是不要寫這樣的代碼,把++,--操作放到獨立行上就不會有問題了
while(*q)
{
*q=*q+1; //或者(*q)++; 這個不會有問題
q++;
}
這樣寫就不會有問題了
❽ 編程菜鳥,這段代碼有錯教材上是這樣的啊編譯器不停報錯,根本停不下來
hi,朋友
剛開始編程都是這樣,只顧著照書上一點點的抄,不知道每個東西為什麼這么編寫,要想調通首先要知道編寫規則,最起碼讓編譯器不能識別出你編寫的語法bug。
上面是一段c語言程序,簡單分析一下為什麼調不通:
#include<stdio.h>為IO函數類庫必須有,要不printf和scanf都使用不了。
main{中間是一下代碼},是主函數,一個c程序必須有它,所有的邏輯都要寫在裡面,才能運行,但是這個前面要給它一個返回值,一般void mian{}就行,設置無返回值,要不會報錯。
int a,b,c聲明了三個整形變數,但是結尾沒有分號;,這是肯定要報錯的。
然後你列印了一段話在dos屏幕上,(這是第一個程序計算器\n),還換行輸出,這段沒有什麼問題。
printf("請輸入第一個數字:");
scanf("%d,&a");
printf("請輸入第二個數字:");
scanf("%d,&b");
這些都沒有問題,正常列印,還有用scanf函數,手動輸入整形變數值a和b。
c = a+b結尾也沒有分號;,故然這塊還是要報錯。
printf("結果是:%d\n",c);列印出a+b的結果,沒有錯。
把getch();改成system("pause");作為顯示結果時,能夠讓結果停留在屏幕上。
照著上面重新編寫你的代碼吧,然後編譯一遍,再運行。
因為你是剛學習編程,一句一句分析,會對你編譯出錯問題理解,有所幫助,加油!
❾ 如果編譯器出了bug,請問大家是怎麼解決的
用& 連接字元串的時候,前後敲個空格就好了。 Response.Write "字元串:" & He&"" 因為&H是16進制數字的前綴,編譯器誤會了。
❿ 編譯器錯誤●怎麼辦
這是兩個截然不同的概念。不是叫做:編譯器錯誤,而是應該叫做:編譯錯誤。如果說真的是編譯器內部本身(例如:C語言編譯器、或者是別的各種編程語言的編譯器)出現了bug 的話,那麼任何人也沒有辦法。只有開發編譯器軟體的軟體開發人員才能夠解決這樣的問題;
如果是在你的源程序中產生的各種編譯錯誤(例如:語法錯誤、語義錯誤等),那麼你只能夠仔細地檢查、編譯、調試你的源程序了。