33,321
社区成员




//
// 程序将 TXT文本列表里的 .txt文件内容合并起来。文件列表为第一个命令行参数
//
#include <stdio.h>
#include <stdlib.h>
//
char *afgets(char *s, int n, FILE *iop);
/* cat: 将一组文件串联起来,版本1 */
main (int argc, char *argv[ ])
{
FILE *fp;
FILE *fpn;
int c;
char s[36];
char *ss = s;
void filecopy(FILE *, FILE *);
if (argc == 1) {
printf("请在命令行-带参数运行\n此程序用于快速合并txt文件\n\n"
"目录下如果有其它非TXT文件会发生未知错误\n\n"
"把此程序复制到txt文件同目录下\n\n"
"文件名列表生成的方式:\n dir /b > 文件名列表.txt\n\n"
"把文件名列表中的 非 .txt 结尾的文件名删掉\n\n"
"如下格式运行此命令即可:\n本程序名.exe 文件名列表.txt > 你的文件名.txt\n\n\n");
system("cmd");
}
else if ((fp = fopen(*++argv, "r")) == NULL) {
printf("cat: can't open %s\n", *argv);
return 1;
} else {
while ( (c = getc(fp)) != EOF) {
if ((*ss++ = c) == '\n') {
*--ss = '\0';
if ( *(ss - 1) != 't')
//此处未 中断,程序直接读取下一个文件
printf( " 此文件 未被读取: %s ", s);
else if ( (fpn = fopen( s, "r") ) != NULL) {
filecopy(fpn, stdout);
fclose(fpn);
printf("\n");
}
ss = s;
}
}
}
fclose(fp);
return 0;
}
/* filecopy: 将文件ifp复制给文件ofp */
void filecopy(FILE *ifp, FILE *ofp)
{
int c;
while ((c = getc(ifp)) != EOF)
putc(c, ofp);
}
//
/*只适用小写字母加密。
*/
#include <stdio.h>
#include <ctype.h>
int getline (char *p);
main ()
{
int c = 0;
int i;
char s0[] = "?#&@!(+-)";
char s1[] = "cghiueabdf";
char s[1002];
char *p = s;
getline(p); /*读取文本 - 到数组s*/
/* 输出加密字符,如果该字符比前一个大就在本行输出否则换行输出*/
while (*p != '\0') {
for ( i = 0; i < 30; i++){
//想了半天才想到 把指针往前推就可以判断下个字符而保持行循环。
if ((*p - 97) == i) {
printf( "%d ", *p % 2);
++p;
}
else
printf( "%c ", i%5 > 2 ? s0[i%9]:s1[i%9] );
}
printf( "\n");
}
getchar();
return 0;
}
/*得到要加密的一行字符 只取字母*/
int getline (char *p)
{
int i = 0;
int c;
for ( ; (c = getchar() ) != '\n' && i < 100; i++ )
isalpha(c)? *p++ = c : ' ';
*p = '\0';
return 1;
}