如何在 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++ 中读取文件并获取单词 的相关文章

随机推荐

  • 为什么 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 获取该行 然后看看是否可以通过空格将