fgets在输入之前读取前一行

时间:2015-10-15 09:50:46

标签: c string fgets

当我输入输入时,问题会在我输入字符串之前重复。

printf("Enter %d coefficients starting from the 0th degree.\nSeparate them by commas: ", degree+1);
fgets(coeffs_string, MAX, stdin);
for(i=0;i<strlen(coeffs_string);i++){
    if(coeffs_string[i]==','){
        commas++;
        continue;
    }
    else if(isdigit(coeffs_string[i]) || coeffs_string[i]==' ')
        continue;
    else{
        printf("\007Error! A character was found during the input!\n");
                coeffs_string[0]='\0';
        commas=0;
        break;
    }
}

另外,即使输入正确的输入,它也会打印错误处理程序。我尝试使用scanf,但它只是停止。有没有办法让fgets或scanf不能快速读取输入? *编辑:抱歉:我忘记了代码的某些部分

1 个答案:

答案 0 :(得分:0)

  1. 尝试在fflush(stdout);printf()之间加fgets() fgets()陈述。或者,在输出的单独行中获取输入。
  2. open: function(html, $scope) { var el = angular.element(html); $compile(el)($scope); $timeout(function() { $.fancybox.open(el); }, 0); } 返回的字符串包含 用户通过按Enter键生成的行终止符字符 键。您没有明确处理这些字符,因此将始终显示错误消息。