C 程式編譯好以後執行的結果與期望的不一樣

2022-10-31 04:25:20 字數 2575 閱讀 2523

1樓:金色潛鳥

程式沒有問題。

你的程式是先要執行 編碼:

未命名.exe liao.txt e

從鍵盤拍入一行文字

再回車。

從鍵盤拍入的一行文字 編碼 後 寫入了 liao.txt**********===

接下來執行 解碼:

未命名.exe liao.txt d

程式作為只讀檔案開啟 liao.txt,讀一個字元,向螢幕輸出 1個 解碼後的字元,

所以, liao.txt 裡的東西 不會變化。

**********===

如果你手工編輯 liao.txt,再 未命名.exe liao.txt d,

解碼後的字元 顯示在 螢幕, liao.txt 裡的東西當然 不變。

**********===

如果你手工編輯 liao.txt,再 未命名.exe liao.txt e,

這是要求 從鍵盤拍入的一行文字,

編碼 後 寫入 liao.txt

於是 原來手工 編輯的內容 沒有了,變新的內容。

2樓:匿名使用者

我試著用了,好像沒什麼問題。。。。。。

c++程式設計問題,程式能成功編譯,但是不出結果

3樓:

在最後加上個接受字元語句試一下,一般都是執行出來結果了,但是沒有停留又返回設計介面.或者alt+f5看結果

4樓:佼秀越

頂陽光滿窗

不過還有很多需要考慮的問題,比如異常處理,輸入不符合規範的資料怎麼辦等等,也要進行判斷,不過針對你的源**陽光滿窗那樣修改就可以出來正確結果了(就輸入正常數值而言)

c++編好程式後如何在系統中執行

5樓:匿名使用者

首先你要知道你寫的正確,所以要去編譯,要用編譯器。比如vc++軟體。

然後正確以後生成,生成二進位制的obj檔案。

因為obj檔案時根據你的c++檔案為單位來生成的,所以你需要一個能執行的exe,就需要將這些obj連線起來。編譯器一般生成obj後直接連線成exe。

基本就是上面三個步驟,如果你目前只有一堆c++**,而不是exe檔案,那麼你需要的是一個編譯器。

也許你想不執行c++編譯器直接執行,但是你的**是按照c++語言規則來寫出來的一堆文字和符號,電腦並不知道你要做什麼,電腦沒有義務理解每一種語言,電腦終究只會執行二進位制,這些熱二進位制是什麼意思它不在乎。那麼你怎麼讓電腦知道你要做什麼,那麼很顯然,你需要一個軟體,它必須理解c++,還必須理解機器。就好像你給一個老外寫了一堆文字,你不該指望他能直接理解,你需要一個翻譯。

所以你需要這麼一個軟體,它就是編譯器。它幫你把你的c++檢查,如果正確就給你生成一個exe,然後這個exe才會執行。希望直接將一堆c++**執行是不能的。

6樓:醉月暮靄

當你程式編譯連結過執行一遍後在你的儲存路徑下會有一個debug的資料夾,裡面就有一個exe的檔案。此檔案就是你最後一次編譯執行的程式結果。如果你編了一個小遊戲的話,就直接可以把這個exe檔案發給你朋友玩了。

但是真正的一個軟體的話還需要許多細節,包括程式中的記憶體分配**,系統錯誤的返回等等。

7樓:匿名使用者

在vc++6.0整合開發環境中,寫好**,按f5執行程式,之後關閉程式;然後找到儲存程式的路徑,在這個資料夾中有一個以.exe為字尾的程式,雙擊就可以執行了。

8樓:雲林之盟

寫好程式後,直接按 ctrl+f5 就可以執行了。自動編譯和連結的。

9樓:匿名使用者

編譯,連結,就可以了

為什麼編譯正確的c++程式在執行時會停止工作

10樓:匿名使用者

編譯只是保證沒有語法錯誤,但是不能保證你的程式的演算法沒有錯誤,如果你的程式中有比較嚴重的bug,如果說訪問了系統保護的記憶體,出於保護,windows會中止你的程式,或是丟擲一個異常,如果異常沒有**獲並加以處理,程式也會中止,當然,這時你也有機會用除錯工具去debug。這種執行期的錯誤是需要程式設計師去除錯排除的。

11樓:匿名使用者

編譯正確只是表示程式已經沒有語法錯誤了,但是不一定程式的執行就沒有問題,比如記憶體讀寫錯誤,死迴圈之類的都可以導致執行時出錯。最好還是把源**貼出來,如果很小的話。

c++程式編譯無錯 執行有誤 希望有人可以幫我

12樓:匡別妖

**貼上來。。

編譯通常只是檢測邏輯語法的。

真正執行就需要考慮記憶體 資料格式等等一大堆問題。。

為什麼在c++程式裡執行的和.exe檔案執行的結果不一樣

13樓:匿名使用者

一閃而過吧。

編譯的時候有的編譯器會讓你看到結果,這是為方便程式設計而作的,但是exe就不會了,exe會執行**,不會為你把結果保留的。

解決方法是在程式末尾加上system("pause");標頭檔案貌似是stdlib.h

C語言以下程式的執行結果是

答案錯誤。應該11。或者 有誤。void main if j 2 0 j 10,所以滿足條件,執行j 20後,j 200。繼續迴圈。printf d n i 最終結束迴圈的條件是i 1000,故i輸出為1001,與j無關 i 10,j 10 j 200,i 11 程式結束 怎麼會是1001?是11啊...

c語言中下面編寫的程式編譯無錯誤執行時顯示

第10行,strcmy,改成strcmp 你這程式邏輯混亂了哦。strcmp這個函式是比較的意思,對原來的資料不會進行任何修改的,而且返回值是0和1,你也沒有變數接收返回值。如果沒有理解錯你的意思的話,你應該把if和else下面的函式也改成strcpy 拼錯了strcmy strcmp c語言程式,...

學習c語言,程式的執行結果不知為什麼

巨集定義出了問題,define s x x x define f x x x 是不正確的,應該改成 define s x x x define f x x x 要不進行 1000 s n j 1000 f n 的時候,是1000先除於x,再乘於x,那得到的值當然是1000了.因為你沒加括號。defi...