EDIT 1線少在Linux:問題解決了。 @sth問我是否忘記刪除可能用「new」創建的對象。他是對的!我忘了它。並修復這確實解決了這個問題。我想這是Visual Studio爲我做的事,而Linux不是。相同的代碼來編寫的陣列,以一個文件寫入相對於Windows
編輯2:由於這是一個學校項目和潛在的抄襲問題,即使我自己編寫代碼,代碼也被刪除。此外,這個問題似乎與我的代碼的細節無關,並且更多的是新的和刪除的一般C++用例。
完全相同的代碼具有不同的行爲上的Visual Studio 2013(安裝在Windows上)和我的學校,我用G ++編譯代碼的SSH服務器。代碼編譯沒有錯誤,並按照預期工作,除了1部分。將數組的內容逐行寫入文件時,它會少寫1行。
如果陣列有10種元素的Visual Studio編譯的代碼創建「sorted.txt」文件具有10行和所有的人都保持完全1的整數。沒有空行。 Ssh編譯的代碼仍然會創建10行,但最後一行是空的。所以在我的「sorted.txt」文件中實際上有一個整數丟失。我的任務將在評分時在此服務器上編譯,因此這可能是一個問題。
程序是否在沒有正確清理FileManager對象的情況下終止? – sth
在Linux上運行valgrind。您可能會發現'FileManager'實例泄漏。 – timrau
@sth我不確定我是否可以檢查。代碼執行時沒有錯誤,ssh終端只是要求我寫新的命令。它沒有給我任何信息。 – GoktugO