我的程序已运行正常一年多。今天,我将这些文件复制到不同的系统上并编译了每个程序。无法写入文件
当我编译并从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
任何错误信息? –