iT邦幫忙

0

DEV C++ 可以編譯執行,但無法輸出到txt

同一隻程式碼在其他電腦可以跑,所以確定不是程式碼問題。

目的主要是做資料分析然後將結果用FOUT輸出成txt。在我的電腦上,建新資料夾是沒問題的,但就是無法產出新的輸出資料。

請各位大神幫我解惑!!!

wrxue iT邦好手 1 級 ‧ 2021-07-25 08:40:29 檢舉
用管理員權限跑看看囉
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2021-07-26 10:02:11

如果沒有別的辦法
就試試以下這兩個
1.在有可能出錯的地方加 printf/cout/try catch
例:所有目錄/檔案動作、所有的 else...
2.在不可能出錯的地方加 printf/cout
看看程式是否有照你的預期跑完

a = 1;
printf("--1");
b = 1; //說不準那天 b 被改成 0 之類的
printf("--2");
c = a/b;
printf("--3");

這兩個方法的關鍵是不要認為不可能就不加 printf/cout
就像在家裡找鑰匙
所有的地方都要找

0
JamesDoge
iT邦高手 1 級 ‧ 2023-02-14 09:26:32

這個問題可能和權限設定有關。如果你的程式碼是在 Windows 系統中運行,你可能需要使用 Administrator 權限來執行你的程式,才能寫入新的檔案。

你可以嘗試在執行程式之前先使用 Windows 的檔案總管,建立一個新的資料夾,然後在你的程式碼中使用該資料夾的完整路徑來寫入檔案。例如:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    string folder = "C:\\path\\to\\your\\folder\\";
    string filename = folder + "output.txt";

    ofstream fout(filename.c_str());
    if (fout.is_open()) {
        fout << "Hello, world!" << endl;
        fout.close();
        cout << "檔案寫入成功!" << endl;
    } else {
        cout << "無法寫入檔案!" << endl;
    }

    return 0;
}

我要發表回答

立即登入回答