ignoring return value of ‘scanf’, declared with attribute warn_unused_result
#include
int main(int argc, const char * argv[]) {
int k;
scanf("%d",&k);
int arr[k];
for(int i = 0;i maxSum){
maxSum = sum;
}else if(sum < 0){
sum = 0;
}
}
printf("%d
",maxSum);
return 0;
}
ptaにコードを書くとignoring return value of‘scanf’,declared with attribute warn_が表示されますunused_resultの警告
間違いではありませんが、不快に見えますが、
なぜなら、scanfの戻り値が使用されていないため、戻り値が1の場合は入力成功を表し、戻り値が0の場合は入力エラーを示し、intタイプが必要だが文字列が入力されているなど、タイプが一致しないため、戻り値の結果に基づいてエラーメッセージを追加することができ、scanfの戻り値を使用すると警告は報告されません.
修正されたコードは次のとおりです.
#include
int main() {
int k;
if(scanf("%d",&k) != 1){
printf(" !");
}
int arr[k];
for(int i = 0;i maxSum){
maxSum = sum;
}else if(sum < 0){
sum = 0;
}
}
printf("%d
",maxSum);
return 0;
}