用TC语言怎样实现以下功能:(解决立马给分,否则可建议班主扣我的信誉值)

WYJBCB 2003-08-23 08:19:01
在X:\opq\temp目录中新建一个test.txt文件,并向该文件内输入数据,如1234567890.其中"X"是指不确定的盘符,有可能是c盘,有可能是D盘...
fopen函数只能规定在一定的盘符下目录,如c:\opq\temp,而我要求求出任意目录,不知怎么作?
int getcurdir(int drive,char *direc);听说是返回当前盘符所在的目录,但不知怎么用,能不能给出一个例子,谢谢!
我只想达到以下目的,新建一个test.txt文件并向该文件输入数据,该文件放在.exe文件所在的目录X:\opq下的子目录temp内
...全文
22 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyr311 2003-08-23
  • 打赏
  • 举报
回复
TO:WYJBCB(阿菜)
很简单啊,如果只是字符串的话,就用fputs函数啊
fpw=fopen("X:\\opq\\temp.txt","w+");
fputs("1234567890",fpw);
当然,如果是数字的话,最好用fprintf函数,他可以输出ASCII码的文本文档,你如果用fwrite函数写入数字的话,不管你用文本方式还是二进制方式写入都会得到一串二进制码,但是这可以通过fread函数读取,只是你没有办法直接查看而已,中间数据可以采用这种办法。对于字符或字符串,我的经验是几组函数都可以用:fscanf-fprintf,fread-fprintf,fgets-fputs等,你最好还是上机看一看,不同的机子有时候出来的答案不一样啊!
蝎子i软件 2003-08-23
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <dir.h>

#define FNAMELEN 80
void main(){
FILE *fout;
char fname[FNAMELEN], fnamefinal[FNAMELEN];
int ix, iy;

getcwd(fname, FNAMELEN); /* 获取当前工作目录 */
printf("cwd: %s.\n", fname);

for( ix=0, iy=0; ix<FNAMELEN; ++ix ) { /* 把"\"转换成"\\", 因为'\'是转义字符,'\\'才是\ */
fnamefinal[iy++]=fname[ix];
if( fname[ix]=='\\' )
fnamefinal[iy++]='\\';
else if( fname[ix]=='\0' )
break;
}
printf("fnamefinal: %s.\n", fnamefinal);

strcat(fnamefinal, "\\\\test.txt"); /* 添加文件名到fnamefinal(光是路径) */

fout=fopen(fnamefinal, "w"); /* 以读方式打开文件, 如果不存在则创建, 如果存在则覆盖 */

for( ix=0; ix<10; ++ix )
fprintf(fout, "%d", ix); /* 写数据 */

fclose(fout);
}
Cybergate 2003-08-23
  • 打赏
  • 举报
回复
楼主是想取得exe执行文件的路径名吧?而getcurdir(int drive,char *direc)是取得当前工作路径名,是不行的。

其实exe文件的全称可以通过命令行第一个参数argv[0]取得:

int main(int argc, char **argv)
{
printf ("%s", argv[0]);
}

例如如果当前工作目录是c:\winnnt; 而该程序的exe文件(例如prog.exe)的目录是d:\myprograms
那么该程序的结果就是d:\programs\prog.exe

因此,只需要把最后一个反斜杠及其后面的内容去掉就是exe文件的目录了。这种字符串的操作我想楼主应该不在话下吧。

另外写入数据的方法任何一本c语言的书籍中都应该有介绍的,这里不再赘述。
WYJBCB 2003-08-23
  • 打赏
  • 举报
回复
To lyr311(老刘):
您好,谢谢,还想问下,我向该文件内输入数据,如"1234567890"字符串,怎么输入?
lyr311 2003-08-23
  • 打赏
  • 举报
回复
Fopen函数并不是只能在一定的盘符下,可以是任意目录的但是其格式和一般的路径名不一样而已,我昨天才在手册上查到的:
fopen("X:\\opq\\temp.txt","w+");
绝对解决问题!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧