C语言的文件操作中怎么指定文件的路径
admin 发表于 2010-04-21 | 来源:互联网 | 阅读:
题目:输入文件名称及路径创建该文件,并把从键盘输入的内容保存到该文件中,最后将该文件的路径,文件名称及文件内容输出到屏幕。
- C/C++ code
-
#include<stdio.h> int main() { FILE *fp; char filename[20]; char path[20]; printf("Enter the file name: "); scanf("%s",filename); printf("Enter the path: "); scanf("%s",path); fp=fopen(filename,"wb");//怎么设置路径呢? ....... //怎么获取文件名称和路径呢? }
大家帮看看。

输入:c:\\文件名.扩展名
楼主问题不理解
文件名称和路径名称是分开的。怎么处理呢?
拼接起来.用strcat函数.
拼接起来.用strcat函数.怎么获取呢?
char cArrFileName[260] = {0};char cArrFilePath[260] = {0};strcpy(cArrFilePath,"c:\\");scanf("%s",cArrFileName);strcat(cArrFilePath,cArrFileName);FILE *pf = fopen(cArrFilePath,"wb");BYTE btArrBuffer[1024] = {0};scanf("%s",btArrBuffer);fwrite(btArrBuffer,…..);printf(cArrFilePath);
fp=fopen(filename,"wb");里的filename就表示了文件的路径及文件名,所以你要把输入的文件名和文件路径拼接起来,计算出这个filename,例如,string filename, path, name;……(获取path, name的值)filename = path + name;fp=fopen(filename,"wb");就OK了
fp=fopen(filename,"wb");里的filename就表示了文件的路径及文件名,所以你要把输入的文件名和文件路径拼接起来,计算出这个filename,例如,string filename, path, name;……(获取path, name的值)filename = path + name;fp=fopen(filename,"wb");就OK了
现在知道了文件名和路径怎么获取呢?
最好过滤一下别让路径和文件名中有非法字符,比如:\/+<>什么的。scanf也限制一下长度。scanf("%19s",filename);scanf("%19s",path);
C/C++ code
//输入文件名称及路径创建该文件,并把从键盘输入的内容保存到该文件中,
//最后将该文件的路径,文件名称及文件内容输出到屏幕
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char *filename=(char*)malloc(sizeof(char)*10);
char *path=(char*)malloc(sizeof(char)*10);
char *str=(char*)malloc(sizeof(char)*20);
char *content=(char*)malloc(sizeof(char)*50);
printf("Enter the name of file.\n");
scanf("%s",filename);
printf("Enter the path of file.(""C:\\…"")");
scanf("%s",path);
strcpy(str,path);
strcat(str,filename);
if((fp=fopen(str,"wb"))==NULL)
{
printf("Can not open the file.\n");
exit(0);
}
printf("Enter your content.\n");
scanf("%s",content);
fputs(content,fp);
fclose(fp);
printf("Read content form file.\n");
if((fp=fopen(str,"rb"))==NULL)
{
printf("Can not open the file.\n");
exit(0);
}
printf("filename is: %s\n",filename);
printf("path is: %s\n",path);
fgets(content,50,fp);
printf("The content is %s.\n",content);
fclose(fp);
free(filename);
free(path);
free(content);
free(str);
return 0;
}
C/C++ code
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char ch, filename[20], path[20],buffer[40];
printf("Enter the file name: ");
scanf("%s",filename);
printf("Enter the path: ");
scanf("%s",path);
sprintf(buffer, "%s\\%s", path,filename);
printf("\nto end input ,press Ctrl+Z in newline,then ENTER:\n");
if((fp=fopen(buffer,"wt+"))==NULL)
{
printf("no such path, \nstrike any key exit!");
getch();
exit(1);
}
while ((ch=getchar())!=-1) ch=fputc(ch,fp);
fclose(fp);
printf("==================================\n\n");
printf("file path \"%s\" \nfile name \"%s\":\nand its content:\n",path,filename);
fp=fopen(buffer,"rt");
while ((ch=fgetc(fp))!=-1) putchar(ch);
fclose(fp);
return 0;
}