在从 stdin 读取的 while 循环中捕获 EOF 字符[重复]

2023-11-30

下面的代码从stdin逐个字符地传输,直到遇到 EOF 符号 (CTRL-D)。但是,当我执行 CTRL-D 命令时,它不会将其处理为 EOF 字符。

#include <stdio.h>
#include <ctype.h>

int main() {

    char current_character, next_character;

    int amount_of_characters = 0, amount_of_words = 0, amount_of_newlines = 0;

    while( (current_character = getchar()) != EOF) {
        amount_of_characters++;

        if(isspace(current_character) || current_character == '\n') {

            next_character = getc(stdin);

            if(isalpha(next_character)) {
                amount_of_words++;
                ungetc(next_character, stdin);
            }

            if(current_character == '\n') {
                amount_of_newlines++;
            }
        }
    }

    printf("----- Summary -----\n");
    printf("Characters: %d\nWords: %d\nNewlines: %d\n", amount_of_characters, amount_of_words, amount_of_newlines);

    return 0;
}

None

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

在从 stdin 读取的 while 循环中捕获 EOF 字符[重复] 的相关文章

  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 选择具有所有缺失值的字符变量

    我有一个包含大约 3 000 个变量的 SAS 数据集 我想删除所有值都缺失的字符变量 我知道如何对数字变量执行此操作 我特别想知道字符变量 我需要使用基本 SAS 来完成这项工作 但这可能包括 proc SQL 这就是为什么我也将这个标记
  • perl 从日期中减去一个月

    我得到格式为 dd mm YYYY 的日期 并尝试使用 Perl 减去一个月 示例 12 07 2013 gt 12 06 2013 30 09 2013 gt 31 08 2013 我应该使用 Date Calc 吗 有任何想法吗 Tha
  • C#中如何获取CPU使用率?

    我想获取 C 中应用程序的总体 CPU 使用率 我找到了很多方法来深入了解进程的属性 但我只想要进程的 CPU 使用率 以及您在 TaskManager 中获得的总 CPU 量 我怎么做 您可以使用性能计数器班级来自系统诊断 像这样初始化
  • Haskell 中的大规模设计? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 设计 构造大型函数式程序 尤其是在 Haskell 中 的好方法是什
  • 获取字符串列表的哈希值,无论顺序如何

    我想写一个函数GetHashCodeOfList 它返回字符串列表的哈希码 无论顺序如何 给定 2 个具有相同字符串的列表应该返回相同的哈希码 ArrayList list1 new ArrayList list1 Add String1
  • 将多个 XML 转换为 JSON 列表

    我想使用 PowerShell 脚本将具有相同 XML 属性格式的多个 XML 文件转换为 JSON 文件 这个想法是创建一个 JSON 列表 其中每个项目都是 XML 文件的 JSON 表示形式 可行吗 输入和输出的示例 Input Fi
  • 尝试在托管 bean 构造函数中访问 @EJB bean 时出现 NullPointerException

    我有一个 EJB 服务 Stateless public class SomeService 我想将其注入到 viewscoped bean 中并用它进行初始化 ManagedBean ViewScoped public class Vie
  • (ListView?)-像 Windows 资源管理器中那样进行控制

    我想知道是否有任何方法可以在插入设备时制作一个类似于 Windows 资源管理器自动启动的控件 我原以为这可能是一个或多或少经过修改的列表视图控件 但我无法通过谷歌找到任何东西 我还检查了许多 CodeProject 页面 有谁知道我在哪里
  • 将应用了主题对话框的 Activity 定位在特定的 x、y 位置

    我想将对话框放置在屏幕上的特定位置 从顶部开始 10px 从let开始 5px 我确实应用了主题并添加了android scrollX android scrollY 但似乎不起作用 有什么解决办法吗 下面是我的样式 xml
  • 在 Vue.js 中,在哪里放置代码来设置 Firebase 身份验证状态持久性?

    Overview 我正在 Quasar Vue js 和 Firebase 中构建一个需要对用户进行身份验证的 Web 应用程序 我想要实现的目标 一个非常常见的功能 即使用户关闭浏览器 选项卡后仍保持登录状态 可能的解决方案 我知道我可以
  • HTTP 错误 429:python geopy 的请求过多

    我有一个问题 我不知道如何解决 我想迭代一个文件 在其中将坐标转换为地理位置地址 代码工作正常 但在迭代文件中的一定数量的行后 就会出现问题 from future import print function from geopy geoc
  • javascript中的createElement设置“onchange”属性

    我正在尝试动态添加带有 onchange 属性的新输入字段 var f document getElementById dN fieldsd create insert new el document createElement input
  • 执行生成器表达式最Pythonic的方法是什么?

    Python 越来越多的功能变成了 惰性可执行文件 比如生成器 表达式和其他类型的迭代器 然而 有时 我发现自己想要滚动一个单行 for 循环 只是为了执行一些操作 让循环实际执行的最Pythonic的事情是什么 例如 a open num
  • 将 onclick 添加到所有电话链接

    我有一个 WordPress 网站 一切都很完美 没有任何问题 我唯一想弄清楚如何做的是跟踪每当有人点击带有以下内容的电话链接 a href Click here to call us now at 1 800 222 1111 a 问题是
  • 优化分页渲染

    一边看着Pagination 就出现了渲染复杂页面的问题 这API例子 et al 通常指定一个pageFactory每次调用时都会简单地构造一个新的控件 的确 剖析下面的示例在分页时显示出最小的内存压力 并立即收集了一系列新实例 如果日益
  • 用于检查 iPhone 与 USB 的连接的应用程序

    我想知道 iPhone 是否以编程方式连接到 USB 到目前为止 通过谷歌搜索我发现http developer apple com programs mfi 我真的需要这个 api 来查明 iPhone 是否连接到 USB 设备吗 我只想
  • 如何使用 Cloud Composer 下载和访问文件?

    我有一些与文件相关的用例 我不确定如何使用 Cloud Composer 最好地完成这些用例 我应该如何最好地完成这些 1 我需要使用私钥 pem 文件来访问SFTP服务器 该文件应该存储在哪里以及如何访问它 在本地 Airflow 中 我
  • 检查升高的进程状态?

    我想找到一种方法来查明进程是否以提升的方式运行或不使用 Powershell 使用案例 能够以本地域用户的身份以提升的权限运行控制面板任务 例如添加或删除程序 任何帮助将不胜感激 Start add or remove as admin s
  • Meteor - 更新到 v0.9.1 后出现许多错误

    我已经在 Meteor 项目上工作了一个月 昨天我被要求更新到 Meteor v0 9 1 版本 之后 当我使用启动我的应用程序时meteor 它会在客户端控制台上抛出很多错误 他们来了 Uncaught TypeError undefin
  • 在从 stdin 读取的 while 循环中捕获 EOF 字符[重复]

    这个问题在这里已经有答案了 下面的代码从stdin逐个字符地传输 直到遇到 EOF 符号 CTRL D 但是 当我执行 CTRL D 命令时 它不会将其处理为 EOF 字符 include