下面这个文件输出程序怎样改进?
下面这个程序我是将书中的程序简单改了一下,我要达到的目的是新建一个文件,并且给文件输入内容,然后输出,再然后将这个文件压缩到原来的三分之一放到一个新文件中输出。但是最后一步似乎没有达到。另外也请帮忙看看在给文件输入内容时程序是否正确,有什么要改进的?
问题一:如书中给eddy.txt文件输入的是"So even Eddy oven ready" ,在被压缩的文件中会输出“Send money”,为什么我的程序没有实现?是因为后缀名改成了“.red”吗?
问题二:我的程序明明用putchar要将eddy.txt在屏幕中输出,为什么没看到输出,只看到输入?在F盘中打开eddy.txt可以看到输进去的内容。
问题二:另外,name数组作为文件名怎样体现存在哪个盘中呢?因为我在f盘中没有看到新建的eddy.red文件。
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define LEN 40
int main(void)
{
FILE *in, *out;
int ch, ch1, ch2;
char name[LEN];
in = fopen("f:\\eddy.txt", "w");
if(in == NULL)
{
printf("Can not open the file f:\\eddy.txt.\n");
}
ch = getchar(); //向in所指向的文件输入内容。
fprintf(in, "%c", ch);
while(ch != '\n')
{
ch = getchar();
fprintf(in, "%c", ch);
}
fclose(in);
in = fopen("f:\\eddy.txt", "r");
ch1 = getc(in); //将in所指向的文件内容输出。
while(ch1 != EOF);
{
putchar(ch1); //为什么在屏编译通过的黑窗口中没有看到输出?
ch1 = getc(in);
}
fclose(in);
strncpy(name, "eddy.txt", 4); //把文件名的前4个字符复制到name数组中。
strcat(name, ".red"); //添加后缀名。
out = fopen(name, "w");
if(out == NULL);
{
printf("Can not open the file.\n");
exit(1);
}
ch2 = getc(in); //将eddy.txt的内容每三个字符复制到eddy.red
while(ch2 != EOF);
{
int i = 0;
if(i%3 == 0)
{
putc(ch, out);
i++;
}
}
fclose(out);
return 0;
}