只讲个大概未必能解决你的问题,举手之劳,帮你写了。
由于没有说明怎么处理a.txt原来的第4行和第10行,这里分别将它们顺次移到下一行。一个完整的c程序如下,在win-tc和Dev-c++下已运行通过。
#include
#include
#include
#define N 255 /* 假定文章的总行数不超过255,可更改 */
main()
{
int i=0,max;
char s[N][101],s1[101],s2[101],*p,*q="a.txt";
FILE *fp;
printf("Please input string1(not more than 100 letters):\n");
gets(s1);
printf("Please input string2(not more than 100 letters):\n");
gets(s2);
if ((fp=fopen("a.txt","r+"))==NULL)
{ printf("Open file %s error!",q);
getch();
exit(0);
}
while(i<3&&fgets(s[i],101,fp)!=NULL) /*按行读3行原文章*/
{ p=strchr(s[i],'\n');
if(p) *p='\0'; /*消除每行最后的回车符*/
i++;
}
strcpy(s[i++],s1); /*插入到第四行*/
while(i<9&&fgets(s[i],101,fp)!=NULL) /*继续读原文章*/
{ p=strchr(s[i],'\n');
if(p) *p='\0';
i++;
}
strcpy(s[i++],s2); /*插入到第十行*/
while(i
{ p=strchr(s[i],'\n');
if(p) *p='\0';
i++;
}
max=i;/* max为文章实际的总行数 */
rewind(fp);
for(i=0;i
{ fprintf(fp,"%s\n",s[i]); /*输出到文件a.txt中*/
printf("%s\n",s[i]);
}
fclose(fp);
getch();