私は今、非常に紛らわしい問題を抱えています。私は自分でテスト プログラムを作成しましたが、Crtl+C を入力した後、これが EOF であると想定した後、キャンセルしたかった While ループの下でいくつかのコマンドを実行せずに、プログラムが早期に終了することがあります。
#include <stdio.h>
#include <string.h>
int main()
{
char message[140];
char* p = message;
int count;
int i = 0;
int charGT;
while((charGT=getchar()) != EOF)
{
message[i] = charGT;
i++;
printf("%d" , i);
}
printf("next");
count = strlen(p);
printf("%d", count);
printf("after");
return (0);
}
「asd\n^C」と入力すると、プログラムが早く終了します。「next」または「after」は出力されません私の理論では、どういうわけか、\n によってプログラムがループから抜け出し、Crtl+C でプログラムが終了するということですが、わかりませんそれがどのように機能するか。