先把文本的内容逐行读取,利用字符串匹配函数查找该行是否有"file",无则输出到out.txt文件,有则忽略不计
#include <stdio.h>#include <stdlib.h>
#include <string.h>
bool Hasfile(char *str)
{
if(strlen(str) <= 4)
return false
for(int i = 0 i <= strlen(str)-4 ++i)
{
if(strncmp("file", str+i, 4) == 0)
return true
}
return false
}
int main()
{
char txtname[50] = {'\0'}
char buf[128] = {'\0'}
scanf("%s", txtname) // 输入源文本文件名,如 a.txt
FILE *fp1, *fp2
if((fp1 = fopen(txtname, "r")) == NULL
|| (fp2 = fopen("out.txt", "w+")) == NULL)
{
printf("Error!\n")
exit(1)
}
while(!feof(fp1))
{
memset(buf, 0, sizeof(buf))
fgets(buf, sizeof(buf)-1, fp1)
if(!Hasfile(buf))
fprintf(fp2, "%s", buf)
}
printf("已将过滤结果输出至 ./out.txt\n")
return 0
}
持续读入字符直到*/符号这个过程,LZ你忘记持续读入字符了。while(!feof(cPtr))
{
if(ch=='*'){
ch=fgetc(cPtr)
if(ch=='/')
{
break
}}
//添加读入字符
else ch = fgetc(cPtr)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)