テキスト ファイルを 1 文字ずつ読み取り、ドットとコンマの前のスペースとハイフネーションを削除します。string.h 関数の使用は禁止されています! 単一のハイフン/スペースを削除するプログラムを作成しようとしましたが、それらをすべて削除する必要があると考えました。たとえば、ドットの前にある 1 つ、2 つ、または複数のスペースです。初心者として、それは私には明確ではありません.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;
}
それを説明してください!