码迷,mamicode.com
首页 > 其他好文 > 详细

pat等评测系统的各种出错总结(持续更新)

时间:2021-01-05 11:18:11      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:方法   一个   类型转换   size   解决   读取   pre   scanf   return   

1.

A warning:comparison between signed and unsigned integer expressions [-Wsign-compare]:有符号数和无符号数的比较警告

为什么出错呢  很多时候你必须声明一下 unsigned int

如果不声明,有时候进行比较,一些现成的api比如stl的一些方法,返回值可能是无符号数什么的。比如size()方法,容积总不可能是负的吧?

在for循环里 不能用无符号32位整形作为判断条件

有时候多打一个unsigned或者signed 能省一些不必要的麻烦

 2.

warning: ignoring return value of ‘int scanf(const char*, ...)’,  

scanf 函数是有返回值的 返回的是读取的数据个数。很多时候我们都不用cin因为怕卡时间

但是scanf函数是不安全的,因为你没有使用返回值,所以评测机甚至很丧心病狂地警告你。比如pat的评测系统

解决方法:

1)加上void 强制类型转换忽略返回值(好笨)

2)用一下scanf的返回值,不就不会警告了嘛。

比如 

if(scanf("%d",&x) !=EOF  )

3)在vs上,可以用scanf_s

 

pat等评测系统的各种出错总结(持续更新)

标签:方法   一个   类型转换   size   解决   读取   pre   scanf   return   

原文地址:https://www.cnblogs.com/ranzhong/p/14220890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!