GetCurrentDirectory(sizeof(curpath),curpath)
SetCurrentDirectory(curpath);
strcat(curpath,"test.txt");
fopen(curpath,"a");
为什么手动传参数总是生成在C:\Documents and Settings\user\下
怎样才能生成在当前运行程序目录下。
13 个解决方案
#1
fopen("filename","r");这样就使当前目录了。
#2
我要在当前目录下生成文件,这个文件事先并不存在,并且需要往里面写东西
#3
fopen("filename","w");
用w这个命令,如果当前存在filename这个文件,则会删除该文件,并生成同名的新文件,
如果当然不存在,则生成该文件。
用w这个命令,如果当前存在filename这个文件,则会删除该文件,并生成同名的新文件,
如果当然不存在,则生成该文件。
#4
#include<stdio.h>
void main()
{
FILE *fp;
int i;
fp=fopen("test.txt","w");/*答案存于当前目录下的test.txt文件中*/
for(i=0;i<5;i++)
fprintf(fp,"%d\n",i+1);
fclose(fp);
}
#5
可用CFileDialog选择要生成的路径和给文件命名
#6
fopen(filename,"w");
w:Opens an empty file for writing. If the given file exists, its contents are destroyed
fopen(filename,"w+");
w+:Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed.
两个都可以了..
w:Opens an empty file for writing. If the given file exists, its contents are destroyed
fopen(filename,"w+");
w+:Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed.
两个都可以了..
#7
#8
#9
#10
多谢各位了
但还是有些问题,我直接在编译器中,将参数提前设定后运行没有问题。
但是直接将文件(参数argv[1])拖拽到可执行程序上,这样生成的文件却在c:\Documents and Settings\user下,
难道fopen对手动和自动会选择不同的路径?
有没有办法,能实现不论怎样传参都生成在当前目录下。。。
但还是有些问题,我直接在编译器中,将参数提前设定后运行没有问题。
但是直接将文件(参数argv[1])拖拽到可执行程序上,这样生成的文件却在c:\Documents and Settings\user下,
难道fopen对手动和自动会选择不同的路径?
有没有办法,能实现不论怎样传参都生成在当前目录下。。。
#11
先
DWORD WINAPI GetModuleFileName(
__in HMODULE hModule,
__out LPTSTR lpFilename,
__in DWORD nSize
);
得到程序的目录
再
BOOL WINAPI SetCurrentDirectory(
__in LPCTSTR lpPathName
);
设置程序的运行目录
DWORD WINAPI GetModuleFileName(
__in HMODULE hModule,
__out LPTSTR lpFilename,
__in DWORD nSize
);
得到程序的目录
再
BOOL WINAPI SetCurrentDirectory(
__in LPCTSTR lpPathName
);
设置程序的运行目录
#12
3楼说的已经很清楚了,4楼连具体的例子都贴出来了,楼主应该知道怎么修改为自己的东西吧??
加油!~
#13
如果楼主想将argv[1]放到当前目录的话,可以这样。
#include<stdio.h>
int main(int argc,char *argv[])
{
FILE *fp;
int i;
if(argc < 2)
{
printf("Input Error!\nUsage:programmename filename\n");
return -2;
}
if((fp = fopen(argv[1],"w")) == NULL)
{
printf("Open file error.\n");
return -1;
}
/* 具体的写文件语句*/
fclose(fp);
return 0;
}
#1
fopen("filename","r");这样就使当前目录了。
#2
我要在当前目录下生成文件,这个文件事先并不存在,并且需要往里面写东西
#3
fopen("filename","w");
用w这个命令,如果当前存在filename这个文件,则会删除该文件,并生成同名的新文件,
如果当然不存在,则生成该文件。
用w这个命令,如果当前存在filename这个文件,则会删除该文件,并生成同名的新文件,
如果当然不存在,则生成该文件。
#4
#include<stdio.h>
void main()
{
FILE *fp;
int i;
fp=fopen("test.txt","w");/*答案存于当前目录下的test.txt文件中*/
for(i=0;i<5;i++)
fprintf(fp,"%d\n",i+1);
fclose(fp);
}
#5
可用CFileDialog选择要生成的路径和给文件命名
#6
fopen(filename,"w");
w:Opens an empty file for writing. If the given file exists, its contents are destroyed
fopen(filename,"w+");
w+:Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed.
两个都可以了..
w:Opens an empty file for writing. If the given file exists, its contents are destroyed
fopen(filename,"w+");
w+:Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed.
两个都可以了..
#7
#8
#9
#10
多谢各位了
但还是有些问题,我直接在编译器中,将参数提前设定后运行没有问题。
但是直接将文件(参数argv[1])拖拽到可执行程序上,这样生成的文件却在c:\Documents and Settings\user下,
难道fopen对手动和自动会选择不同的路径?
有没有办法,能实现不论怎样传参都生成在当前目录下。。。
但还是有些问题,我直接在编译器中,将参数提前设定后运行没有问题。
但是直接将文件(参数argv[1])拖拽到可执行程序上,这样生成的文件却在c:\Documents and Settings\user下,
难道fopen对手动和自动会选择不同的路径?
有没有办法,能实现不论怎样传参都生成在当前目录下。。。
#11
先
DWORD WINAPI GetModuleFileName(
__in HMODULE hModule,
__out LPTSTR lpFilename,
__in DWORD nSize
);
得到程序的目录
再
BOOL WINAPI SetCurrentDirectory(
__in LPCTSTR lpPathName
);
设置程序的运行目录
DWORD WINAPI GetModuleFileName(
__in HMODULE hModule,
__out LPTSTR lpFilename,
__in DWORD nSize
);
得到程序的目录
再
BOOL WINAPI SetCurrentDirectory(
__in LPCTSTR lpPathName
);
设置程序的运行目录
#12
3楼说的已经很清楚了,4楼连具体的例子都贴出来了,楼主应该知道怎么修改为自己的东西吧??
加油!~
#13
如果楼主想将argv[1]放到当前目录的话,可以这样。
#include<stdio.h>
int main(int argc,char *argv[])
{
FILE *fp;
int i;
if(argc < 2)
{
printf("Input Error!\nUsage:programmename filename\n");
return -2;
}
if((fp = fopen(argv[1],"w")) == NULL)
{
printf("Open file error.\n");
return -1;
}
/* 具体的写文件语句*/
fclose(fp);
return 0;
}