C言語のEOF
テスト文字数
2点:getchar()をループの外に出すと、ループの中で必ず書いてください
EOFは手動入力のEOFではなく、windows下ctrl+z linux下ctrl+d
Linuxでは、新しい行の先頭にCtrl-Dを押し、EOF(行の途中でCtrl-Dを押すと「アライメント入力」を出力するキャッシュ領域を示すので、この場合は2回Ctrl-Dを押さなければならない)を表し、WindowsではCtrl-ZはEOFを表す.(ちなみにLinuxでCtrl-Zを押すと、そのプロセスを中断し、バックグラウンドでハングアップし、fgコマンドでフロントに戻すことができます.Ctrl-Cを押すとプロセスを終了します.)では、本当にCtrl-Dを入力したい場合はどうしますか?この場合はCtrl-Vを押してからCtrl-Dを入力しなければなりません.これはEOF信号です.Ctrl-Vは「字面の意味」で次の入力を解読し、「字面の意味」でCtrl-Vを入力したい場合は、2回連続で入力すればよい.
質問:EOFをカスタマイズすると、ファイルまたは標準ストリームの終了かどうかを判断します.
#include"stdio.h"
main()
{
int c;
long n = 0;
c = getchar();
while(c != EOF)
{
++n;
c = getchar();
}
printf("%ld
", n);
getch();
}
2点:getchar()をループの外に出すと、ループの中で必ず書いてください
EOFは手動入力のEOFではなく、windows下ctrl+z linux下ctrl+d
Linuxでは、新しい行の先頭にCtrl-Dを押し、EOF(行の途中でCtrl-Dを押すと「アライメント入力」を出力するキャッシュ領域を示すので、この場合は2回Ctrl-Dを押さなければならない)を表し、WindowsではCtrl-ZはEOFを表す.(ちなみにLinuxでCtrl-Zを押すと、そのプロセスを中断し、バックグラウンドでハングアップし、fgコマンドでフロントに戻すことができます.Ctrl-Cを押すとプロセスを終了します.)では、本当にCtrl-Dを入力したい場合はどうしますか?この場合はCtrl-Vを押してからCtrl-Dを入力しなければなりません.これはEOF信号です.Ctrl-Vは「字面の意味」で次の入力を解読し、「字面の意味」でCtrl-Vを入力したい場合は、2回連続で入力すればよい.
#include"stdio.h"
main()
{
int c;
long n = 0;
while((c = getchar()) != EOF)
{
++n;
}
printf("%ld
", n);
getch();
}
質問:EOFをカスタマイズすると、ファイルまたは標準ストリームの終了かどうかを判断します.