您的位置:首页 > 其它

命令行和文件的操作

2015-09-06 14:27 239 查看
/**
* 使用命令行方式
* 复制任意多个文件内容到一个文件中
* 命令行形式:mycopy 1.txt 2.txt 3.txt 4.txt
* 功能: 复制2.txt 3.txt 4.txt的内容到1.txt中
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUF_SZ 81

char buf[BUF_SZ];

void main(int argc, char ** argv) {
FILE * fpw = NULL, * fpr = NULL;
int i;

if (argc <= 2) {
puts("参数个数太少,请重新输入。");
return;
}

if ((fpw = fopen(argv[1], "a")) == NULL) {
puts("第一个文件打开失败。");
return;
}

for (i = 2; i < argc; i++) {
if ((fpr = fopen(argv[i], "r")) == NULL) {
printf("第%d个文件打开失败。\n", i);
}

while (fgets(buf, BUF_SZ, fpr))
fputs(buf, fpw);
fputc('\n', fpw);

fclose(fpr);
}

fclose(fpw);
}


/**
* 文本文件中大小写英文字符的转换
* 转换的文件名通过命令行参数提供
*/

#include <stdio.h>
#include <stdlib.h>

void main(int argc, char ** argv) {
FILE * fpr, * fpw;
char ch;

if (argc != 2) {
puts("命令格式:执行文件名 待转换文件名");
return;
}

if ((fpr = fopen(argv[1], "r")) == NULL) {
printf("文件%s未找到。\n", argv[1]);
return;
}

if ((fpw = fopen(argv[1], "r+")) == NULL) { //!!!read/update
printf("文件%s未找到。\n", argv[1]);
return;
}

while ((ch = fgetc(fpr)) != EOF) {
if ('a' <= ch && ch <= 'z')
ch = ch - 'a' + 'A';
else if ('A' <= ch && ch <= 'Z')
ch = ch - 'A' + 'a';

fputc(ch, fpw);
}

fclose(fpr);
fclose(fpw);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: