用C语言编写读入并读取一个文件,按照下面的要求编写程序

已有定义”char str1[80],str2[80];”,从键盘输入一个字符串存放到str1数组中,输入以”!”结束,将str1数组中的字符(不含”!”) ”写”到D盘file.txt文件保存,将file1.txt文件中内容读取到str2中,输出str2中的字符串.
步骤:
1) 定义文件指针。
2) 按题目形式定义两个字符型数组和整型变量i。
3) 为”写”在d盘建立file.txt文件,并将文件指针指向该文件,如果操作有问题,则结束程序。
4) 向str1读入一个字符串,以”!”结并读取文件束。
5) 执行while循环,判断条件为str1串中字符为”!”循环终止。在循环过程中,将str1串中的字符通过语句”fprintf(fp,”%c”,str1[i]);”依次写到文件中。
6) 关闭文件指针。
7) 为”读”重新打开d盘file.txt文件,并将文件指针指向该文件。
8) 通过语句”fscanf(fp,”%s”,str2);”将文件中字符串读取到str2中。
9) 输出str2字符串。
提示:
1) 本题为字符串操作,可以用gets,puts等字符串函数。
2) 题目要求读入的字符串以”!”结束,但不能将”!”写入文件。因此将该串写入文件时,应逐个字符进行,使用while循环并以str1[i]!= ‘!’为循环条件。
3) 因为是对串中字符操作,所以需通过”fprintf(fp,”%c”,str1[i]);”语句,按”%c”格式将字符写入文件中。
4) 从文件中读取数据时,可以通过”fscanf(fp,”%s”,str2);”语句,按”%s”格式进行。

#include<stdio.h>

#include<stdlib.h>

int main()

{

FILE *fp,*ok;

char str1[80],str2[80];

if((fp=fopen("d:\\file.txt","r+"))==NULL)//打开d盘下名为file的文本文件; 

{

puts("file文件打开失败!");

exit(0);

}

else

puts("file文件打开成功");

if((ok=fopen("d:\\file1.txt","r"))==NULL)//打开d盘下名为file1的文本文件; 

{

puts("file1文件打开失败!");

exit(0);

}

else

puts("file1文件打开成功");

/*__________________*/

scanf("%[^!]",str1);//输入一串字符,以!为结束标志;

fprintf(fp,"%s",str1);//将字符串str1写入指针fp所指向的文件;

fscanf(ok,"%s",str2);//读取指针ok指向的文件,将内容以字符串的形式存储在数组str2中 ;

puts(str2);

/*__________________*/

fclose(fp);//关闭文件; 

fclose(ok);

return 0;

}

温馨提示:答案为网友推荐,仅供参考
相似回答