我刚刚制作了一个小程序,它读取拖动到其图标上的文件的名称并将其写入输出文本文件
但是如果我编译这个程序,当我尝试将文件拖到它上面时它会崩溃。 如果我双击打开它就可以了;如果我用命令行和参数打开它就可以了;但如果我只是将一个文件放在我编译的程序上,它总是会崩溃,我不知道为什么
尝试像这样编译:
#include <stdio.h>
int main(int argc, char * argv[])
{
FILE * File=fopen("file.txt", "w");
fclose(File);
return 0;
}
如果将一个简单文件拖放到该程序图标上,程序就会崩溃
有谁知道为什么吗?
最佳答案
当可执行文件运行时,您可能正在对当前工作目录及其权限做出假设。对无效的 FILE *(例如 NULL)调用 fclose 很可能会导致崩溃。您需要验证 fopen 是否成功,例如
#include <stdio.h>
int main(int argc, char * argv[])
{
FILE * f = fopen("file.txt", "w");
if (f != NULL)
{
//
// write stuff to file here if you want...
//
fclose(f);
}
return 0;
}
关于C编程: Drag&Drop a file over a program's icon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4164467/