读书人

请问:在程序中通过键盘输入一个文件地

发布时间: 2013-01-23 10:44:49 作者: rapoo

请教:在程序中通过键盘输入一个文件地址来调取?
如下:

#include <stdio.h>

void main(void)
{
printf("enter a mane:\n");
char a;
scanf("%c",&a);


FILE *Fprintf;
Fprintf = fopen("c:\test\1.txt", "w");

return;
}

我怎么修改可以通过scanf来输入1.txt 的地址?
[解决办法]
#include <stdio.h>
#include <string.h>
void main(void)
{
char a[256];
FILE *f;

printf("Enter path for 1.txt:\n");
fgets(a,256,stdin);
if ('\n'==a[strlen(a)-1]) a[strlen(a)-1]=0;
if ('\\'!=a[strlen(a)-1]) strcat(a,"\\");
strcat(a,"1.txt");
f = fopen(a, "w");
//...
fclose(f);
return;
}

[解决办法]
引用:
引用:通过scanf输入文件的地址,你的目的是干什么?找到文件还是找到文件地址?
如果是为了找到文件,直接scanf文件名就可以了.
如果是为了找到文件地址,一般来说文件位于磁盘上,磁盘只有柱面/磁道/扇区的概念,即使加载到内存中,也是位于缓冲区中的临时地址.如果非要开辟一块内存存储你的文件,你可以自己malloc一块,然后对内存进行操作……
我想通过输入一个文件夹的地址来显示出这个文件夹里所有文件的列表,包括文件夹里面的多层文件。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main(void)
{
char a[256];
char cmd[512];
FILE *f;

printf("Enter a path for list all files:\n");
fgets(a,256,stdin);
if ('\n'==a[strlen(a)-1]) a[strlen(a)-1]=0;
if ('\\'!=a[strlen(a)-1]) strcat(a,"\\");
sprintf(cmd,"dir \"%s*.*\" /b /s /a-d >d:\\allfiles.txt",a);
system(cmd);
f = fopen("d:\\allfiles.txt", "r");
if (NULL==f) return;
while (1) {
if (NULL==fgets(cmd,512,f)) break;
printf("%s",cmd);
}
fclose(f);
return;
}

[解决办法]
去看文件夹的遍历。

读书人网 >C语言

热点推荐