文字の大文字と小文字の変換を実装します。複数の入力と出力のセット
例
A
B
a
b
目次
getchar()
#include<stdio.h>
int main()
{
int ch = 0;
while (ch = getchar())
{
putchar(ch+32);
}
return 0;
}
なぜなら
キーボードから A を入力してバッファに (\n) を入力すると、getchar はまずバッファから A を取得し (A+32 は ASCII テーブルの a に対応します)、次にバッファから \n を取得します (\n+ 32 は * に対応します)。 ) ASCII テーブル内
したがって、出力は次のようになります: a*
解決:
別の getchar() を使用してキャリッジ リターンを読み取ります
int main()
{
int ch = 0;
// EOF: end of file
//想让循环停止:Ctrl+Z
while ((ch = getchar()) != EOF)
{
putchar(ch+32);
getchar();//用来读取\n
printf("\n"); //换行
}
return 0;
}
改善する
#include<stdio.h>
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
printf("%c\n",ch+32);
getchar();//用来读取\n
}
return 0;
}
scanf()
#include <stdio.h>
int main() {
char ch = 0;
while(scanf("%c ",&ch) != EOF)
{
printf("%c\n",ch+32);
}
return 0;
}
while ループ内の複数の入力セットに対する ~scanf() について
#include <stdio.h>
int main() {
char ch = 0;
while(~scanf("%c ",&ch))
{
printf("%c\n",ch+32);
}
return 0;
}
終了後
EOF は C 言語の定義に進み、その値は (-1)、ファイルの終わり、ファイルの終わりです。
EOF は、ファイルの終わり (場合によってはエラー) が発生したときに、I/O ルーチンによって返されます。
意味: ファイルの終わり (場合によってはエラー) が発生すると、I/O プロセスは EOF を返します。
ターミナルで複数の入力を行う場合、Ctrl+Zを押すと入力が中止されます。
- ~ これは C 言語の演算子、ビットごとの否定です。
while(scanf("%c",&ch) != EOF) と while(~scanf("%c",&ch)) は両方とも、複数の入出力セットを実行できます。