scanf("%d", &value) 中的字符输入[重复]

2024-04-11

简而言之,我的代码是,

#include <stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    while(n != 0)
    {
        scanf("%d", &n);
        printf("%d\n", n);
    }
    return 0;
}

它是为integer输入。但是如果我输入一个character相反(尽管 n 被声明为integer),循环无限并打印最后一个integer输入值。如果我输入一个character乍一看,它似乎打印了一个内存地址。我的问题是,如果我输入一个character相反integer?


当 scanf 失败时,它不会从输入缓冲区中删除字符(成功时它会从缓冲区中删除数据)。因此,下次在循环中触发 scanf 时,它根本不会等待用户输入(因为它的缓冲区中有一个未读字符)。但它一次又一次失败(因为每次失败),因此将进入无限循环。

我坚信第一个 scanf 包含%c作为格式说明符。
您可以通过以下方式摆脱无限循环

if(scanf("%d",&n)==0) break;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scanf("%d", &value) 中的字符输入[重复] 的相关文章

随机推荐

  • 尝试使用 Phantom.js 生成 PDF 时 Vue.js 未渲染

    在这个带有硬编码 url 的简单示例中 我的 Vue js 组件未渲染 纯 html 被渲染 但我有组件的所有位置都显示为空白 Phantomjs 应该能与 Vue js 正常工作吗 var webPage require webpage
  • 构建 Java Swing GUI 的最佳方法?

    到目前为止 我一直在使用 Netbeans Swing GUI 生成功能为我的 java 应用程序构建 GUI 现在我已经开始在我的项目中使用 Eclipse 并放弃了 Netbeans 那么除了手动编写 GUI 的所有代码之外 还有什么其
  • ios UICollectionView 单元格之间顶部/底部分离

    我有一个集合视图 工作正常 并且我调整了 X 填充的分离 而且效果很好 但对于单元格之间的 Y 填充 似乎没有调整为无分离 这是我的布局代码 UICollectionViewFlowLayout layoutItem UICollectio
  • 如何使用 slf4j 记录 postgres 驱动程序消息?

    我在我的网络应用程序中使用 postgres db 我在我的中添加了以下依赖项pom xml
  • AS3 - 我可以知道一个类是否实现了一个接口(或者是另一个类的子类)?

    有了这个代码 function someFunction classParam Class Boolean how to know if classParam implements some interface 即比较classParam
  • .NET 系统类型到 SqlDbType

    我一直在寻找 Net System Type 和 SqlDbType 之间的智能转换 我发现这是以下想法 private static SqlDbType TypeToSqlDbType Type t String name t Name
  • 如何生成与 java TimeZone 对应的良好时区下拉列表

    其他网络应用程序使用什么策略来生成格式良好的时区列表以满足用户偏好 我尝试获取所有时区 但列表很长 而且格式不适合用户 只是想知道其他人是如何做到这一点的 下面的代码片段 String ids TimeZone getAvailableID
  • 如何访问包含特殊字符的对象属性?

    我有一个formDOM 元素 var virDom document getElementsByTagName form 0 virDom有两个带 ID 的字段creditId and pwdId 我可以访问virDom creditId没
  • 表与临时表性能

    对于数百万条记录 哪个更快 永久表or临时表 我只需要将它用于 1500 万条记录 处理完成后 我们删除这些记录 在您的情况下 我们使用称为临时表的永久表 这是大量导入的常用方法 事实上 我们通常使用两个暂存表 一张包含原始数据 一张包含清
  • 如何获取用javascript加载的标签值

    我有一个这样的链接 它是从 Instagram api 获取的 http localhost 60785 access token aspx access token 43667613 4a1ee8c 791949d8f78b472d813
  • glBufferData() 的分段错误

    我不明白为什么这段代码会出现段错误 AxesMarker AxesMarker float size size size vbo vertices 0 vbo elements 0 Vertex vertices 6 Vertex Colo
  • 严格模式性能更高吗?

    一般来说 在浏览器中以 严格模式 执行 JavaScript 是否会提高性能 主流浏览器是否会进行额外的优化或使用任何其他技术来提高严格模式下的性能 稍微改一下 除了其他目标之外 严格模式是否旨在允许浏览器引入额外的优化或其他性能增强 除其
  • cakephp - 获取表名称及其列详细信息

    有谁知道如何从模型名称获取表名称 另外我想获取该模型 表名称的所有列名称及其类型 是否有可能获得给定型号名称的此类详细信息 Thanks 表名 要获取该表 请参阅 this gt Model gt table 或者检查类变量的模型 useT
  • geocomplete 不是使用自动完成的函数

    您好 我正在使用自动填充代码 收到错误 geocomplete 不是一个函数 如果在本地 单独的文件 中使用它 它对我有用 可能是什么错误 function location geocomplete alert gine details g
  • 如何知道 RecyclerView / LinearLayoutManager 是否滚动到顶部或底部?

    目前我正在使用以下代码来检查是否应启用 SwipeRefreshLayout private void laySwipeToggle if mRecyclerView getChildCount 0 mRecyclerView getChi
  • 无法连接到数据库来执行身份功能

    我使用 ASP NET MVC5 创建了一个新应用程序 使用个人用户帐户来确保安全性 并使用代码优先迁移来进行模型 数据库建模 所有选项均为默认 我想为其设置自定义用户和角色 所以我使用创建了一个种子RoleManager and User
  • Mongodb findAndModify节点js

    以下代码在 Node js 中给了我一个异常 需要删除或更新 var args query id id update set data new true remove false db collection COLLECTION INVEN
  • 如何使用 PHP 将 XPath 表达式作为 XSL 参数传递?

    我有一个非常大的 XML 文件 我要从中提取信息 并将其转换为不同的 XML 格式 我已经完美地运行了转换本身 所以现在我想通过使用 PHP 传递变量来使其更加灵活select 标准 以下是我正在使用的工作 XSLT 代码 为简单起见 进行
  • ansible 有 yaml 编辑模块吗?

    我需要修改 yaml 文件 施洛德配置 http schleuder2 nadir org documentation v2 2 index html 并且我想从 ansible 剧本中执行此操作 是否有模块可以执行此操作 很难用谷歌搜索这
  • scanf("%d", &value) 中的字符输入[重复]

    这个问题在这里已经有答案了 简而言之 我的代码是 include