两道c语言基础题目求解!给高分!

来源:百度知道 编辑:UC知道 时间:2024/05/21 15:53:30
1. 编写一个程序,由键盘输入一个文件名,然后把从键盘输入的字符依次存放到该文件中,用'!'作为结束输入的标志。
2. 编写一个程序fcat.c ,把命令行中制定的多个文本文件连接成一个文件。
例如 C:\>fcat file1 file2 file3 file4
它把文本文件file1、file2、file3 、file4连接成一个文件,连接后的文件名为file1。
#include <stdio.h>
main()
{
FILE *fp;
char s[100],c[100];
int i,j,m,n;
printf("input the file name:\n");
for(i=0;i<=99;i++)
{
s[i]=getchar();
if(s[i]=='\n')
{
m=i;
break;
}
}
for(i=0;i<=m;i++)
fp=fopen("c:\\s[i]","w");
printf("input the content:\n");
for(j=0;j<=99;j++)
{
c[j]=getchar();
if(c[j]=='!')
{
n=j;
break;
}
}
for(j=0;j<=n;j++)
fputc(c[j],fp);
fclose(fp);
}
我自己写的,请高手帮忙修改!

1
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("cannot open fiel\n");
exit(0);
}
ch=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符
ch=getchar();//接收输入的第一个字符
while(ch!='!')
{
fputc(ch,fp);putchar(ch);
ch=getchar();
}
putchar(10);// 向屏幕输出一个换行符
fclose(fp);
}

2
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 3
struct filename
{
char files[9];
}file[N]={"file2","file3","file4"};
void main()
{
FILE *in[N],*out;
char ch;
for(int i=0;i<N;i++)
{
if((in[i]=fopen(file[i].files,"r"))==NULL)
{
printf("cannot open file\n&q