我的程序已運行正常一年多。今天,我將這些文件複製到不同的系統上並編譯了每個程序。無法寫入文件
當我編譯並從Dev-C++運行時,它將數據寫入文本文件,但是當它點擊它創建的可執行文件時,它不會將數據寫入文件。像輸入/輸出一樣的其他東西似乎工作。
我錯過了什麼程序?
好吧,我已經給了程序完全permision,但它仍然不寫。
我很困惑,至少如果它沒有運行,當我在C++環境中編譯它時,我可以繼續檢查我的代碼,但只有.exe不起作用,還有其他建議嗎?
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream bss2;
bss2.open("expat.txt",ios::app);
bss2 << 2 ;
bss2.close();
}
這是我測試出來的示例代碼。
我如何找到當前工作目錄?
好吧,我改了行
bss2.open("c:\\expat2.txt",ios::app);
,現在它工作正常的exe文件。
但有超過50個文件,我更喜歡我沒有拼出每個新的路徑,有什麼解決方法是將目錄設置爲以前使用的?
更新4:
#define _POSIX_SOURCE
#include <unistd.h>
#undef _POSIX_SOURCE
#include <stdio.h>
main() {
char cwd[256];
int y;
if (chdir("/tmp") != 0)
perror("chdir() error()");
else {
if (getcwd(cwd, sizeof(cwd)) == NULL)
perror("getcwd() error");
else
printf("current working directory is: %s\n", cwd);
}
scanf(y);
}
好吧,我使用的GETCWD(),這是它給了我
的chdir()錯誤()消息:沒有這樣的文件或目錄
如何我現在設置目錄嗎?
用戶權限替換
open("
?你在運行什麼操作系統? – Joe魔法部分?對不起,忍不住用你的用戶名...;) – Nim
任何錯誤信息? –