逐字符读取文本文件并删除点和逗号前面的空格和连字符。禁止使用 string.h 函数! 我试图编写一个删除单个连字符/空格的程序,以为我需要删除所有这些,例如点前的一个、两个或多个空格。作为新手,我不清楚,我想我不完全了解如何使用 while 循环。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *f1;
FILE *f2;
char ch1;
char ch2;
char space=0;
if(argc==1)
{
printf("Unknown file\n");
return 1;
}
f1=fopen(argv[1], "r");
if(!f1)
{
printf("Error opening input file\n");
return 2;
}
f2=fopen(argv[2], "w");
if(!f2)
{
printf("Error creating output file\n");
return 3;
}
while((ch1=getc(f1))!=EOF)
{
if((ch1==' ')||(ch1=='\n'))
{
if((ch2 = getc(f1))=='.')
{
putc('.', f2);
}
else
{
putc(ch1, f2);
putc(ch2, f2);
}
}
else putc(ch1, f2);
}
return 0;
}
请给我解释一下!