在文本文件file1.txt中有若干个句子,现下要求把它们按每行一个句子的格式输出到file2.txt中
在文本文件file1.txt中有若干个句子,现在要求把它们按每行一个句子的格式输出到file2.txt中
编译通过但是运行的时候不能达到想要实现的功能,求大神帮忙指明错在何处,还请赐教如何修改代码。谢谢!~
------解决方案--------------------
16行删去,
18、19行改成
------解决方案--------------------
不过这样改过之后还是有问题:
1. '.', '!', '?'有可能出现在句子的中间,比如 "hello.txt",再比如引用某人说的话的时候,这种情形怎么判断出来
2. 如果file1里面的某个句子已经是被'\n'切断的,怎么在file2中恢复成一个句子
#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *fp1,*fp2;
char ch;
if((fp2=fopen("file2.txt","w"))==NULL||(fp1=fopen("file1.txt","r"))==NULL)
exit(0);
else
{
while((ch=fgetc(fp1))!=EOF)
{
if(ch!='.')
{
fputc(ch,fp2);
fputc('.',fp2);
}
if((ch=fgetc(fp1))=='.')
fputc('\n',fp2);
}
while((ch=fgetc(fp2))!=EOF)
putchar(ch);
}
fclose(fp1);
fclose(fp2);
}
编译通过但是运行的时候不能达到想要实现的功能,求大神帮忙指明错在何处,还请赐教如何修改代码。谢谢!~
------解决方案--------------------
16行删去,
18、19行改成
else fputc('\n',fp2);
------解决方案--------------------
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp1,*fp2;
char ch;
if((fp2=fopen("file2.txt","w"))==NULL
------解决方案--------------------
(fp1=fopen("file1.txt","r"))==NULL)
exit(0);
while((ch=fgetc(fp1))!=EOF)
{
fputc(ch,fp2);
if ('.' == ch
------解决方案--------------------
'!' == ch
------解决方案--------------------
'?' == ch)
fputc('\n',fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
不过这样改过之后还是有问题:
1. '.', '!', '?'有可能出现在句子的中间,比如 "hello.txt",再比如引用某人说的话的时候,这种情形怎么判断出来
2. 如果file1里面的某个句子已经是被'\n'切断的,怎么在file2中恢复成一个句子