c语言 --文件习题

1.有两个磁盘文件,各自存放一些字符,要求两个文件合并,用c语言实现。

# include
#include
 main()
{
FILE *fp1,*fp2;
char c;
if ((fp1=fopen("E:/111222.txt", "r"))==NULL)
    {
        printf("connot open\n");
        exit(0);//当文件打开失败时,立即退出。原因:后面的代码对文件进行操作会出现错误。
    }
    if ((fp2=fopen("E:/1111222.txt", "a+"))==NULL)
    {
        printf("connot open\n");
        exit(0);
    }
while ((c = fgetc(fp1)) != EOF)//当读取的字符不是文件的结束符
    {
        fputc(c,fp2);
    }
    fclose(fp1);
    fclose(fp2);
    return 0;
}

主要是以读写的形式打开文件2,将文件已个内容复制到文件2结尾处。

2.从键盘上输入一个字符串,字符串以“#”号结束,将其中的小写字母改成大写字母,然后输出到一个磁盘文件。

# include
#include
 void main()
{
FILE *fp1;
char str[122];
int i=0;
if ((fp1=fopen("E:/1111222.txt", "a+"))==NULL)
    {
        printf("connot open\n");
        exit(0);
    }
printf("please input a string: \n");
gets(str);
while(str[i]!='#')
{
if(str[i]>='a'&&str[i]<='z')
{
str[i]=str[i]-32;

}
fputc(str[i],fp1);
i++;
}

    fclose(fp1);
   
}

3.从磁盘上读取一个字符串,并在屏幕上显示出来.

# include
#include
 void main()
{
FILE *fp1;


if ((fp1=fopen("E:/1111222.txt", "r"))==NULL)
    {
        printf("connot open\n");
        exit(0);
    }
while(fgetc(fp1)!=EOF) 
fputchar(fgetc(fp1));  // fputchar 将文件里的内容显示到屏幕上

    fclose(fp1);
   
}

  但是运行后只显示了文件中的偶数位的字符。查了半天也不知道是什么原因。。。

你可能感兴趣的:(c语言 --文件习题)