首页 > 其他分享 >大学 C 语言在线 PTA 平台编译提示警告未使用 scanf 返回值的问题

大学 C 语言在线 PTA 平台编译提示警告未使用 scanf 返回值的问题

时间:2024-10-31 17:42:39浏览次数:4  
标签:scanf 平台 PTA 编译器 返回值 警告

最近在知乎发现有不少大学生在使用 PTA 平台在线编写 C 语言代码,编译时提示警告未使用 scanf 返回值的问题。具体现象是编译器输出显示为类似于这样的提示。

a.c: In function ‘main’:
a.c:9:5: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    9 |     scanf("%d", &num);
      |     ^~~~~~~~~~~~~~~~~

有不少同学认为程序有问题,要是这样认为倒也是,因为 PTA 平台默认使用的 GCC 编译器希望你重视函数返回值的问题,希望你用上 scanf 函数的返回值。但话又说回来,使用这个 PTA 平台编写 C 语言的大学生基本上都是初学 C 语言的,而教材上的范例程序基本上都不会用到 scanf 的返回值。 都这样了知乎上还有人和鄙人杠说“这个返回值其实是很重要的”。 这显然是为了杠而杠了,C 语言初学阶段先把功能或者是题目需求搞定再说细节上的问题。

不过,还是希望各位初学者重视编译器的警告,虽然这对部分英语基础不是很好的同学可能有些困难,但是根据警告完善代码,还是非常重要的,这更好地保障了应用程序的稳定性。

这里鄙人专门注册了一个 PTA 平台的账号研究了一下,并且参考了 StackOverflow 上一些大佬的回答,汇总了几种解决这个警告的办法。

一种方法:切换编译器

PTA 平台其实提供了好几种 C 语言的编译器,鄙人实测了一下,只要把编译器切换到 clang,就不会警告未使用 scanf 返回值的问题了。

切换编译器的下拉框一般位于代码框的上方,他这里默认选择的是“C (gcc)”,我们把这个下拉框选择“C (clang)”,再尝试提交程序,这样就不会警告未使用 scanf 返回值的问题了。

另一种方法:修改代码

参考 StackOverflow 上 rivy 大佬在这个回答的评论区里面提供的线索 ,只要把 scanf 语句稍微修改一下即可。比如说鄙人这个程序里面有一个

scanf("%d", &num);

只要在 scanf 前面加一个 (void)!,就像这样

(void)!scanf("%d", &num);

GCC 编译器就不会再警告未使用 scanf 返回值的问题了。

标签:scanf,平台,PTA,编译器,返回值,警告
From: https://www.cnblogs.com/wujiuqier/p/18518533

相关文章

  • 3.C语言中scanf 和printf的重点介绍(续10/25篇)
    文章目录一、printf1.1基本用法1.2占位符1.3占位符列举1.4输出格式1.4.1限定宽度1.4.2总显示正负号1.4.3限定小数位数1.4.4输出部分字符串二、scanf2.1基本用法2.2scanf的返回值2.3占位符2.4赋值忽略符总结一、printf1.1基本用法printf()的作用......
  • PTA | 六度空间
    “六度空间”理论又称作“六度分隔(SixDegreesofSeparation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。“六度空间”理论虽然得到广泛的认同,并且正在得到越来越......
  • cin和scanf的返回值知多少
    cin的返回值在C++中,cin是用于从标准输入(通常是键盘)读取数据的对象。cin的返回值实际上是一个流对象(std::istream类型),可以通过流的状态来检查输入操作是否成功。以下是一些关于cin返回值的关键点:输入成功与失败:当你使用cin进行输入时,可以通过cin的状态来判断输入......
  • Go入门指南-6.9应用闭包:将函数作为返回值
    在程序function_return.go中我们将会看到函数Add2和Adder均会返回签名为func(bint)int的函数:funcAdd2()(func(bint)int)funcAdder(aint)(func(bint)int)函数Add2不接受任何参数,但函数Adder接受一个int类型的整数作为参数。我们也可以将Adder......
  • ts 构造函数类型和构造函数返回值类型的区别
    在TypeScript中,构造函数类型和构造函数返回值类型是两个不同的概念,它们分别用于描述构造函数的行为和结果。下面详细解释这两者的区别。1.构造函数类型构造函数类型描述的是一个类的构造函数的签名,包括构造函数的参数类型和返回类型。它定义了如何通过new关键字创建一个实......
  • Python 函数的返回值定义语法
    什么是函数返回值?函数在执行完成后,返回给调用者的结果返回值的应用语法:使用关键字:return来返回结果def函数(参数...):函数体return返回值变量=函数(参数)注意:函数体在遇到return后就结束了,所以写在return后的代码不会执行练习:#定义一个函数,完成两......
  • HTTP相关返回值异常如何解决(上篇)
    ​今天我们讲讲HTTP相关返回值异常如何解决(实例持续更新中)一、HTTP介绍HTTP(超文本传输协议,HypertextTransferProtocol)是用于在网络上进行数据交换的应用层协议。它是万维网(WWW)的基础,允许客户端(通常是网页浏览器)与服务器之间进行通信。以下是对HTTP的一些基本介绍:基本概......
  • 【PTA】树的同构
    题目描述给定两棵树T1​和T2​。如果T1​可以通过若干次左右孩子互换就变成T2​,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断......
  • PTA题目集1-3总结(22207331-张博文)
    总体情况预览:第一次:第二次:第三次:(1)前言:前三次作业题量适中,但是难度较大!题目集作业主要考察了以下知识点:一、基础语法1. 变量与数据类型:包括整型(int、long等)、浮点型(float、double)、字符型(char)、布尔型(boolean)等数据类型的定义和使用。2. 运算符:算术运算符(+、-、*、/、%......
  • 22207223-王颖对于编写pta答题判题程序的总结
    目录一、前言1.1知识点1.2题量1.3难度二、答题判题程序12.1设计与分析2.2踩坑心得2.3改进建议三、答题判题程序23.1设计与分析3.2踩坑心得3.3改进建议四、答题判题程序34.1设计与分析4.2踩坑心得4.3......