#include <windows.h>
#include <iostream>#include <cstdio>#include <cstring>#include <stack>using namespace std;void pathcmp(char *path,char *wfd,char *filePath){ int l1 = strlen(path); int l2 = strlen(wfd); int pos = 0; for (int i = 0 ; i < l1 ; i++) filePath[pos++] = path[i]; filePath[pos++] = '\'; for (int i = 0 ; i < l2 ; i++) filePath[pos++] = wfd[i]; filePath[pos] = '
#include <windows.h>
#include <iostream>#include <cstdio>#include <cstring>#include <stack>using namespace std;void pathcmp(char *path,char *wfd,char *filePath){ int l1 = strlen(path); int l2 = strlen(wfd); int pos = 0; for (int i = 0 ; i < l1 ; i++) filePath[pos++] = path[i]; filePath[pos++] = '\\'; for (int i = 0 ; i < l2 ; i++) filePath[pos++] = wfd[i]; filePath[pos] = '\0';}void getSolveName(char *path,char *wfd,int Case,char *solveName){ int l1 = strlen(path); int l2 = strlen(wfd)-4; int pos = 0; for (int i = 0 ; i < l1 ; i++) solveName[pos++] = path[i]; solveName[pos++] = '\\'; for (int i = 0 ; i < l2 ; i++) solveName[pos++] = wfd[i]; solveName[pos++] = '_'; stack<int> s; while (Case) { s.push(Case%10); Case /= 10; } while (!s.empty()) { solveName[pos++] = s.top() + '0'; s.pop(); } solveName[pos++] = '.'; solveName[pos++] = 't'; solveName[pos++] = 'x'; solveName[pos++] = 't'; solveName[pos] = '\0';}bool Search(char *Path){ HANDLE hFind; WIN32_FIND_DATA wfd; ZeroMemory(&wfd,sizeof(WIN32_FIND_DATA)); char PathTemp[512]; memset(PathTemp,0,sizeof(PathTemp)); sprintf(PathTemp,"%s\\*.*",Path); hFind=FindFirstFile(PathTemp,&wfd); if(INVALID_HANDLE_VALUE==hFind)//如果没有找到或者查找失败 {// MessageBox(NULL,"INVALID_HANDLE_VALUE","FindFirstFile",MB_OK); return false; } do { if('.'==wfd.cFileName[0])//如果是当前目录或者是上级目录,就直接进入下一次循环 { continue; } if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//如果该文件是文件夹 { sprintf(PathTemp,"%s\\%s",Path,wfd.cFileName);// MessageBox(NULL,PathTemp,"Directory",MB_OK);// Search(PathTemp,File); //进入该文件夹继续搜索(递归) Search(PathTemp); //进入该文件夹继续搜索(递归) } else {// MessageBox(NULL,"Found",wfd.cFileName,MB_OK); //找到文件 //找到文件后对文件进行处理 char filePath[100]; //文件地址以及文件名 pathcmp(Path,wfd.cFileName,filePath);// printf ("%s\n",wfd.cFileName); FILE *fp_que = fopen(filePath,"r"); int Case = 1; int a,b; while (~fscanf (fp_que,"%d %d",&a,&b) && fp_que != NULL) { char solveName[100]; getSolveName(Path,wfd.cFileName,Case++,solveName); FILE *fp_solution = fopen(solveName,"w"); fprintf (fp_solution,"%d\n",a+b); fclose(fp_solution); //关闭输出文件 } fclose(fp_que); //关闭输入文件 } }while(FindNextFile(hFind,&wfd));//文件查找的条件 FindClose(hFind);//关闭FIND句柄 return true;}int main(){ Search("D:\\a+b"); return 0;}
网上查的一部分,自己补了一部分,码一下,以后也许会用到。
';}void getSolveName(char *path,char *wfd,int Case,char *solveName){ int l1 = strlen(path); int l2 = strlen(wfd)-4; int pos = 0; for (int i = 0 ; i < l1 ; i++) solveName[pos++] = path[i]; solveName[pos++] = '\'; for (int i = 0 ; i < l2 ; i++) solveName[pos++] = wfd[i]; solveName[pos++] = '_'; stack<int> s; while (Case) { s.push(Case%10); Case /= 10; } while (!s.empty()) { solveName[pos++] = s.top() + '0'; s.pop(); } solveName[pos++] = '.'; solveName[pos++] = 't'; solveName[pos++] = 'x'; solveName[pos++] = 't'; solveName[pos] = '
#include <windows.h>
#include <iostream>#include <cstdio>#include <cstring>#include <stack>using namespace std;void pathcmp(char *path,char *wfd,char *filePath){ int l1 = strlen(path); int l2 = strlen(wfd); int pos = 0; for (int i = 0 ; i < l1 ; i++) filePath[pos++] = path[i]; filePath[pos++] = '\\'; for (int i = 0 ; i < l2 ; i++) filePath[pos++] = wfd[i]; filePath[pos] = '\0';}void getSolveName(char *path,char *wfd,int Case,char *solveName){ int l1 = strlen(path); int l2 = strlen(wfd)-4; int pos = 0; for (int i = 0 ; i < l1 ; i++) solveName[pos++] = path[i]; solveName[pos++] = '\\'; for (int i = 0 ; i < l2 ; i++) solveName[pos++] = wfd[i]; solveName[pos++] = '_'; stack<int> s; while (Case) { s.push(Case%10); Case /= 10; } while (!s.empty()) { solveName[pos++] = s.top() + '0'; s.pop(); } solveName[pos++] = '.'; solveName[pos++] = 't'; solveName[pos++] = 'x'; solveName[pos++] = 't'; solveName[pos] = '\0';}bool Search(char *Path){ HANDLE hFind; WIN32_FIND_DATA wfd; ZeroMemory(&wfd,sizeof(WIN32_FIND_DATA)); char PathTemp[512]; memset(PathTemp,0,sizeof(PathTemp)); sprintf(PathTemp,"%s\\*.*",Path); hFind=FindFirstFile(PathTemp,&wfd); if(INVALID_HANDLE_VALUE==hFind)//如果没有找到或者查找失败 {// MessageBox(NULL,"INVALID_HANDLE_VALUE","FindFirstFile",MB_OK); return false; } do { if('.'==wfd.cFileName[0])//如果是当前目录或者是上级目录,就直接进入下一次循环 { continue; } if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//如果该文件是文件夹 { sprintf(PathTemp,"%s\\%s",Path,wfd.cFileName);// MessageBox(NULL,PathTemp,"Directory",MB_OK);// Search(PathTemp,File); //进入该文件夹继续搜索(递归) Search(PathTemp); //进入该文件夹继续搜索(递归) } else {// MessageBox(NULL,"Found",wfd.cFileName,MB_OK); //找到文件 //找到文件后对文件进行处理 char filePath[100]; //文件地址以及文件名 pathcmp(Path,wfd.cFileName,filePath);// printf ("%s\n",wfd.cFileName); FILE *fp_que = fopen(filePath,"r"); int Case = 1; int a,b; while (~fscanf (fp_que,"%d %d",&a,&b) && fp_que != NULL) { char solveName[100]; getSolveName(Path,wfd.cFileName,Case++,solveName); FILE *fp_solution = fopen(solveName,"w"); fprintf (fp_solution,"%d\n",a+b); fclose(fp_solution); //关闭输出文件 } fclose(fp_que); //关闭输入文件 } }while(FindNextFile(hFind,&wfd));//文件查找的条件 FindClose(hFind);//关闭FIND句柄 return true;}int main(){ Search("D:\\a+b"); return 0;}
网上查的一部分,自己补了一部分,码一下,以后也许会用到。
';}bool Search(char *Path){ HANDLE hFind; WIN32_FIND_DATA wfd; ZeroMemory(&wfd,sizeof(WIN32_FIND_DATA)); char PathTemp[512]; memset(PathTemp,0,sizeof(PathTemp)); sprintf(PathTemp,"%s\*.*",Path); hFind=FindFirstFile(PathTemp,&wfd); if(INVALID_HANDLE_VALUE==hFind)//如果没有找到或者查找失败 {// MessageBox(NULL,"INVALID_HANDLE_VALUE","FindFirstFile",MB_OK); return false; } do { if('.'==wfd.cFileName[0])//如果是当前目录或者是上级目录,就直接进入下一次循环 { continue; } if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//如果该文件是文件夹 { sprintf(PathTemp,"%s\%s",Path,wfd.cFileName);// MessageBox(NULL,PathTemp,"Directory",MB_OK);// Search(PathTemp,File); //进入该文件夹继续搜索(递归) Search(PathTemp); //进入该文件夹继续搜索(递归) } else {// MessageBox(NULL,"Found",wfd.cFileName,MB_OK); //找到文件 //找到文件后对文件进行处理 char filePath[100]; //文件地址以及文件名 pathcmp(Path,wfd.cFileName,filePath);// printf ("%s\n",wfd.cFileName); FILE *fp_que = fopen(filePath,"r"); int Case = 1; int a,b; while (~fscanf (fp_que,"%d %d",&a,&b) && fp_que != NULL) { char solveName[100]; getSolveName(Path,wfd.cFileName,Case++,solveName); FILE *fp_solution = fopen(solveName,"w"); fprintf (fp_solution,"%d\n",a+b); fclose(fp_solution); //关闭输出文件 } fclose(fp_que); //关闭输入文件 } }while(FindNextFile(hFind,&wfd));//文件查找的条件 FindClose(hFind);//关闭FIND句柄 return true;}int main(){ Search("D:\a+b"); return 0;}#include <iostream>#incl