如何检查C中的输入EOF(ctrl + D)

时间:2017-11-06 17:16:25

标签: c input eof

我必须检查,我将在此代码中输入(ctrl + D)

char octets_array[octets_number][128];
  for(line_counter =0; line_counter < octets_number; line_counter++)


{
printf("Please enter octet: ");
scanf("%s",octets_array[line_counter]);
}

1 个答案:

答案 0 :(得分:0)

scanf manual page所述,请检查EOF返回代码:

{
    printf("Please enter octet: ");
    ret_code = scanf("%s",octets_array[line_counter]);
    if (ret_code == EOF)
        puts("Ctrl+D or other end of file");
    else
        puts("Thank you for the input");
}

如果重定向标准输入以从文件中读取,则scanf在尝试从文件中读取另一个单词失败后将返回EOF

如果未重定向标准输入,当用户按下 Ctrl + D (或 Ctrl)时,scanf将返回EOF + Z 在Windows上输入

注意:当它返回EOF时,输出变量octets_array中没有数据。它包含垃圾或以前的值;无论如何,不​​应该使用那里的数据。