您的位置:首页 > 编程语言 > C语言/C++

c语言 操作 cmd,用 _popen,获得文件夹内制定文件名的

2013-08-29 12:47 405 查看
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <string>
#include <fstream>
using namespace std;

char filename[50][50];
int len;
bool istrue(char* a)
{
int i;
for(i=0;i<len;i++)
{
if(strstr(a,filename[i]))
return true;
}
return false;
}

int main()
{
//    freopen("","r",stdin);
int flag = 1;
int i;
char a;
char t;
char cmd1[100] = "dir/b/s ";
char getdir[300] ="";
char send[300] = "";
char txt[100] = "\\dirout.txt";
char str[600];
char str2[300];
cout<<"导入音频文件扩展名"<<endl;
ifstream stin("filename.txt");
len =0;
for(i=0;i<50;i++)
filename[i][0]='.';
while(!stin.eof())
{
stin>>(filename[len++]+1);
}
for(i=0;i<len;i++)
{
cout<<filename[i]<<endl;
}

cout<<"导入成功"<<endl;
cout<<"请输入文件路径:";
while(gets(getdir))
{
memset(str,0,sizeof(str));
if(getdir[0]!=0)
{
cout<<"请输入文件输出路径:";
gets(send);
strcat(str,cmd1);
strcat(str,getdir);
strcat(send,txt);
puts(str);
FILE *fp = _popen(str,"r");
if(feof(fp))
{
printf("error!");
exit(0);
}
else
{
ofstream stout(send);
while(!feof(fp))
{
fgets(str2,300,fp);
//c                    puts(str2);
if(istrue(str2))
{
stout.write(str2,strlen(str2));
}
}
}
cout<<"是否继续?(Y/N):";
while(t=getchar())
{
gets(str);
if(t=='Y' || t=='y')
break;
else if(t=='N' || t=='n')
{
exit(0);
}
else
{
cout<<"输入不对的值,自动选择继续生成";
break;
}
}
}
else
{
cout<<"输入为空,请重试\n";
}

}
return 0;
}


filename.txt 的内容

ape
cue
wav
flac
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐