处理输入文件的空格,只处理每行开头的空格和整个文档的所有空格

/*============================================================================== 文 件 名 : Win32CApp.c 功 能 : 处理输入文件的空格,只处理每行开头的空格和整个文档的所有空格 日 期 : 2011/05/05 作 者 : jernymy ==============================================================================*/ #include <stdio.h> //#define ONLY_REMOVE_LINE_HEADER // jernymy 只删除每行开头的空格时开启 static void PrcsFileInfo(const char *pchFileName) { int nGetData; FILE *fpSrc = NULL; FILE *fpDst = NULL; char achName[64] = {0}; // jernymy save new file name, add .txt #ifdef ONLY_REMOVE_LINE_HEADER int nIsNewLine = 1; // new line start #endif // jernymy file name valid check if ( (NULL == pchFileName) || (0 == pchFileName[0]) ) { return; } // jernymy file name open "rt" fpSrc = fopen(pchFileName, "rt"); if (NULL == fpSrc) { return; } // jernymy file name add .txt create "wt" sprintf(achName, "%s.txt", pchFileName); fpDst = fopen(achName, "wt"); if (NULL == fpDst) { fclose(fpSrc); return; } #ifdef ONLY_REMOVE_LINE_HEADER while (!feof(fpSrc)) { if (1 == nIsNewLine) { while (' ' == (nGetData = fgetc(fpSrc))) ; } nIsNewLine = 0; nGetData = fgetc(fpSrc); if ( ('/n' == nGetData) || ('/r' == nGetData) ) { nIsNewLine = 1; } if (EOF == nGetData) { break; } else { fputc(nGetData, fpDst); } } #else // this is remove ' ' from a.bat to a.bat.txt while (!feof(fpSrc)) { if ( ((nGetData = fgetc(fpSrc)) != ' ') && (nGetData != EOF) ) // jernymy EOF is file end { fputc(nGetData, fpDst); } } #endif fclose(fpSrc); fclose(fpDst); } int main(int nArgc, char *pachArgv[]) { int nFileIdx = 1; int nPrmtNum = nArgc-1; // jernymy remove exec filename if (nArgc < 2) { printf("Parameter may bigger than 2/n"); return 1; } while (nPrmtNum--) { PrcsFileInfo(pachArgv[nFileIdx]); nFileIdx++; } printf("porcess total file:%d/n", nArgc-1); return 0; }    

 

 

 


/*
Win32CApp.exe a.bat b.bat c.bat

写的有些长,做了文件的保护,只做了简单功能测试

编译好可执行文件Win32CApp.exe
在当前目录下有这样几个文件a.bat, b.bat, c.bat
编写一个exec.bat,内容如下
Win32CApp.exe a.bat b.bat c.bat
保存
然后执行exec.bat
就可以看到在当前目录下生成了新的文件
a.bat.txt, b.bat.txt c.bat.txt

ONLY_REMOVE_LINE_HEADER - 开启是只处理每行的开头部分,至于改行的其他地方的空格不做处理
ONLY_REMOVE_LINE_HEADER - 关闭则整个文档的所有空格都做处理,默认是关闭

*/

 

你可能感兴趣的:(header,File,测试,null,文档)