を使用する必要がある場合fgetc()
、おそらく、行の最初のセミコロンまですべてをエコーし、セミコロンから行末まですべてを抑制することになっています。getc()
これは and と機能的に同等であることに注意してください。fgetc()
このコードは標準入力から読み取り、標準出力に書き込もうとしているためgetchar()
、 andを使用するのが合理的putchar()
です。でもルールはルール…
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
int c;
bool read_semicolon = false;
while ((c = fgetc(stdin)) != EOF)
{
if (c == '\n')
{
putchar(c);
read_semicolon = false;
}
else if (c == ';')
read_semicolon = true;
else if (read_semicolon == false)
putchar(c);
/* else suppressed because read_semicolon is true */
}
return 0;
}
C99 と がない場合は、との代わりにとをそれぞれ<stdbool.h>
使用できます。必要に応じて使用できます。int
0
1
bool
false
true
else if (!read_semi_colon)