如何在 C++ 中读取文件并获取单词

2024-03-11

我很好奇如何从没有固定结构(例如注释或小报告)的文本文件中逐字读取输入。 例如,文本的结构可能如下:

“1992 年 6 月 5 日
今天是个好日子;
虫子已经转变,战斗胜利了。”

我在想也许可以使用 getline 获取该行,然后看看是否可以通过空格将其拆分为单词。然后我想使用 strtok 可能会起作用!但我认为这不适用于标点符号。

我想到的另一种方法是逐个字符地获取所有内容并省略不需要的字符。但这似乎不太可能。

所以简单来说: 有没有一种简单的方法可以从文件中读取输入并将其拆分为单词?


因为写起来比找到重复的问题更容易,

#include <iterator>

std::istream_iterator<std::string> word_iter( my_file_stream ), word_iter_end;

size_t wordcnt;
for ( ; word_iter != word_iter_end; ++ word_iter ) {
    std::cout << "word " << wordcnt << ": " << * word_iter << '\n';
}

The std::string论证istream_iterator告诉它返回一个string当你这样做时*word_iter。每次迭代器递增时,它都会从流中获取另一个单词。

如果同一流上同时有多个迭代器,则可以选择要提取的数据类型。但是,在这种情况下,使用可能会更容易>>直接地。迭代器的优点是它可以插入到通用函数中<algorithm>.

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

如何在 C++ 中读取文件并获取单词 的相关文章

  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

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

随机推荐

  • 为什么 Homebrew 说“没有 git 存储库”?

    Running brew config gives HOMEBREW VERSION gt 1 0 0 no git repository 为什么会发生这种情况 我可以做什么来修复它 HOMEBREW VERSION gt 1 0 0 no
  • 在Golang中实现XSS防护

    我正在使用 Golang 构建 API Rest 我有一个包含很多字段 超过 100 个 的结构 因此我使用以下命令将来自客户端的值分配给该结构gorilla schema效果很好 现在 我想避免用户在任何字符串字段中插入 Javascri
  • android.intent.action.MY_PACKAGE_REPLACED 不工作

    我似乎无法理解这一点 也看不到它在 Logcat 中发送 从审查未收到 ACTION MY PACKAGE REPLACED https stackoverflow com questions 12666734 action my pack
  • Android浮动操作按钮隐藏在底部导航栏后面

    Android 编程新手 现在正在苦苦挣扎 我正在使用 android studio 的默认 导航抽屉活动 最重要的是 我添加了一个底部栏https github com roughike BottomBar 但是 添加后我的 FAB 已隐
  • 自动展开并给予 SearchView 焦点

    我正在开发一个应用程序 用户在其中按下 搜索 图标ActionBar and a SearchView在屏幕顶部可见 我的问题是SearchView既不处于焦点也不展开 因此用户必须按搜索按钮Searchview使其展开并带出键盘 这应该如
  • __cplusplus 指令在各种编译器中是如何定义的?

    我的编译器将其扩展为 199711L 这意味着什么 我读到 cplusplus gt 199711L 表示 C 11 这个宏可能有哪些扩展 它意味着什么 199711L 代表年 1997 月 11 即 1997 年 11 月 委员会批准该标
  • 我的 AWS 策略有什么问题?

    我正在尝试向程序化 IAM 用户授予对单个存储桶的访问权限 我设置了以下策略并将其附加到用户 Version 2012 10 17 Statement Effect Allow Action s3 ListBucket Resource a
  • Android - Google Maps api v2 - 禁用缩放控制

    如何禁用 Google 地图上的 放大 按钮 我尝试寻找类似的命令 map getUiSettings setZoomControlsEnabled true SOMETHING但什么都不存在 我想把创建自己的缩放按钮作为最后的手段 UPD
  • AngularJS - 从自定义过滤器中的控制器访问 $scope

    我有一个controller与各种 scopes 我需要在自定义过滤器中访问这些 scopes 之一 app controller AppController function scope scope var1 Some data1 sco
  • 为 numpy 安装 lapack

    运行 Ubuntu 11 10 python2 7 从源代码构建 numpy 并安装它 但是当我去安装它时 我得到 ImportError usr lib liblapack so 3gf undefined symbol ATL chem
  • 如何修复 Flash 安全错误 #2048

    我在 flash 2048 中遇到错误 我能找到的所有内容都表明这是一项安全预防措施 因为文件不在同一域中 我们有一个在 Rackspace 云服务器上运行的网站 现在正尝试使用云文件 CDN 来加速我们在网站上使用的产品轮换工具 您可以使
  • 如何验证用作反向代理的 Squid 是否正常工作?

    我们希望减少其中一台 Web 服务器的负载 并且正在使用配置为反向代理的鱿鱼运行一些测试 配置在下面的备注中 http port 80 accel defaultsite original server com cache peer ori
  • 用于查找名称以给定值开头的属性的 XPath

    使用这个 xml div a div div b div div c div div d div div f div div g div 我们只想找到 div a div div b div div c div 哪些节点具有属性 其中该属性
  • 为什么使用粘贴创建的文件名中有一个空格?

    我试图使用 R 编写一个文件 为了区分每个文件 我尝试每次在函数中添加不同的后缀 例如 counts lt function counts file name lt substr counts file 1 5 file lt paste
  • 在快速分配任务时

    将 Objective C 代码转换为 Swift 的正确方法是什么 while size inputdata readWithByteArray buf 1 我需要类似的 从这里 https stackoverflow com a 256
  • JAR 中的 Spring Boot + Elastic Beanstalk .ebextensions

    我有一个非常标准的 Spring Boot 应用程序 带有application properties属性文件位于标准 src main resources文件夹 我将其作为 fat JAR 部署在 AWS Elastic Beanstal
  • 如何在 Matlab 中绘制 3D 平面?

    我想使用从 3 个点计算得出的向量绘制一个平面 其中 pointA 0 0 0 pointB 10 20 10 pointC 10 20 10 plane1 cross pointA pointB pointA pointC 如何以 3D
  • Linux进程间共享内存

    我有使用多个进程的服务器 fork 有大量数据可以由一个进程创建 并且应该在其他进程之间共享 因此 我使用 shm open mmap 创建共享内存并将其映射到虚拟内存 struct SharedData const char name i
  • DataGridView 工具提示文本未显示

    我有数据绑定DataGridView在桌面应用程序中 其中的列有其ToolTipText属性集 但当我将鼠标悬停在网格视图 单元格或单元格标题 上时 没有显示工具提示 The ShowCellToolTips网格视图的属性是true 并且我
  • 如何在 C++ 中读取文件并获取单词

    我很好奇如何从没有固定结构 例如注释或小报告 的文本文件中逐字读取输入 例如 文本的结构可能如下 1992 年 6 月 5 日今天是个好日子 虫子已经转变 战斗胜利了 我在想也许可以使用 getline 获取该行 然后看看是否可以通过空格将