输入部分文件名,打开文件(C语言)帮帮忙~~~T_T
来源:百度知道 编辑:UC知道 时间:2024/05/23 09:43:25
例如有很多个文件名为:
A.0000.20080401
B.0000.20080402
C.0000.20080403
如何在命令行只输入0401
就打开A.0000.20080401这个文件?
好难。。不懂。。。没有简单点的吗?
文件都是在指定目录下的,而且会根据需要增加文件,数目不固定
=。= 前面的部分都是一样的,只有后面几个表示日期的不一样。。偶。。是不是很笨啊T_T
人都晕死,搞了半天这么简单的东西,你把他说得这么难,唉
用sprintf函数就可以搞定了
char a[10]={0},b[30]={0};
scanf("%s",a);
sprintf(b,"A.0000.2008%s",a);
然后B就是你要的那个了,你用FOPEN命令打开B这个文件就可以了
这是必须步骤,没办法,不管你增加多少文件,都没问题,因为我的算法里是遍历的整个目录,不会漏的
给你说算法,自己找资料
让你说的应该是指某目录,应该不会是整个计算机吧
遍历该目录,把所有的文件名都保存到一个字符串数组中,然后用KMP算法找到匹配的文件名,然后打开此文件名OK,工作量有点大,不是简单的事
你的文件名除了401,402等等前面部分都是一样的么? 一样的话直接用strcat补全...
当然应该是会变的吧?
1. 先列出所有的文件名,下面这个程序是打印出指定目录下文件名
=========================
函数名: findfirst, findnext
功 能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件
用 法: int findfirst(char *pathname, struct ffblk *ffblk, int attrib);
int findnext(struct ffblk *ffblk);
程序例:
=======================================
/* findnext example */
#include <stdio.h>
#include <dir.h>
int main(void)
{
struct ffblk ffblk;
int done;
printf("directory listing of *.*\n"