读取单词序列并将其添加到向量中

2024-01-03

我最近买了一个C++ 入门 https://rads.stackoverflow.com/amzn/click/com/0321714113并遇到了一个问题。我必须使用以下方式读取单词序列cin并将值存储在vector。在遇到不寻常的问题后,我发现while(cin >> words)如果您期望输入无效,则会引发问题(例如无限循环):使用 cin 获取用户输入 http://www.cplusplus.com/forum/articles/6046/

int main()
{
    string words;
    vector<string> v;
    cout << "Enter words" << endl;
    while (cin >> words)
    {
        v.push_back(words);
    }
    for(auto b : v)
        cout << b << "  ";
    cout << endl;
    return 0;
}

因此,我正在尝试寻找解决这个问题的方法。帮助 ?


您提供的有关输入问题的链接有点不同。它谈论的是当您期望用户输入特定值,但您可能无法读取该值(假设它是一个整数),因为输入了其他内容。在这种情况下,最好使用getline检索整行输入,然后解析出值。

就你而言,你只是在追求言语。当您从流中读取字符串时,它将为您提供所有连续的非空白字符。并且,暂时忽略标点符号,您可以将其称为“单词”。因此,当您谈论“无效输入”时,我不明白您的意思。循环将继续为您提供“单词”,直到流中没有剩余的单词,此时它将出错:

vector<string> words;
string word;
while( cin >> word ) words.push_back(word);

但是,如果您希望用户在一行上输入所有单词并按 Enter 完成,那么您需要使用 getline:

// Get all words on one line
cout << "Enter words: " << flush;
string allwords;
getline( cin, allwords );

// Parse words into a vector
vector<string> words;
string word;
istringstream iss(allwords);
while( iss >> word ) words.push_back(word);

或者你可以这样做:

cout << "Enter words, one per line (leave an empty line when done)\n";

vector<string> words;
string line;
while( getline(cin, line) )
{
    // Because of the word check that follows, you don't really need this...
    if( line.size() == 0 ) break;

    // Make sure it's actually a word.
    istringstream iss(line);
    string word;
    if( !(iss >> word) ) break;

    // If you want, you can check the characters and complain about non-alphabet
    // characters here...  But that's up to you.

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

读取单词序列并将其添加到向量中 的相关文章

  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • 当一组凭据下的计划任务启动的进程在另一组凭据下运行另一个程序时,Windows 是否有限制

    所以我有一个简单的例子 其中我有应用程序 A 它对用户 X 本地管理员 有一些硬编码的凭据 然后它使用硬编码的绝对路径启动带有这些凭据的应用程序 B A 和 B 以及 dotnet 控制台应用程序 但是它们不与控制台交互 只是将信息写入文件
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 使用 LINQ to SQL 时避免连接超时的最佳实践

    我需要知道在 net 应用程序中使用 LINQ to SQL 时避免连接超时的最佳实践 特别是在返回时IQueryable
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 这个可变参数模板示例有什么问题?

    基类是 include
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • ASP MVC 3:如何对选择列表进行客户端验证?

    在阅读了这里的一些问题 答案后 我设法弄清楚如何将选择列表添加到表单并用数据填充它 如下所示 Html DropDownList S new SelectList ViewBag S Id Nme Sel a S 而且效果很好 不过我想补充
  • 在 Linux 上 - 将最大打开文件数设置为无限制。可能的?

    是否可以将打开文件的最大数量设置为某个 无限 值 或者必须是一个数字 我需要将守护程序用户的描述符限制设置为 无限制 我正在尝试确定这是否可能或如何做到 我看到一些邮件列表引用了可以使用的 最大值 例如 myuser Hard nofile
  • 如何读取JSON数据?

    这是json数据格式吗 string json answer Line 1 mark 1 answer Line 3 mark 1 我尝试下面的代码 但它只适用于一个参数 前任 answer Line 1 mark 1 我尝试拆分 json
  • VS Code devcontainer - Dockerfile 中的 containerUser 和 USER 有什么区别?

    来自doc https code visualstudio com docs remote devcontainerjson reference containerUser 覆盖在容器内运行的所有操作的用户 容器 默认为 root 或最后一
  • 使用 SAX 解析器解析大型 XML 文件(跳过一些行/标签)

    我目前正在开发一个使用 SAX 从互联网检索数据的应用程序 我之前用它来解析简单的 XML 文件 例如 Google Weather API 然而 我感兴趣的网站将解析提升到了一个新的水平 页面很大 看起来很乱 我只需要检索一些特定的行 其
  • 使用 cluster.fork() 调试 Node.js 进程

    我有一些代码看起来非常类似于集群文档中的示例 http nodejs org docs v0 6 0 api cluster html http nodejs org docs v0 6 0 api cluster html 以机智 var
  • 检测 macOS 上的用户活动

    我使用函数 IOPMSchedulePowerEvent 来安排睡眠或唤醒事件 并使用 IORegisterForSystemPower 注册我的守护程序以接收电源状态更改 一切正常 当系统进入睡眠状态并稍后在预定时间醒来时 我的守护进程会
  • 如何添加新的 xib 文件

    我必须开发一个具有多个屏幕的应用程序 我已经自动生成了 xib 文件 但对于我的另一个屏幕 我需要另一个 xib 文件 如何创建另一个 xib 文件 假设 XCode 4 在 文件 gt 新建文件 菜单对话框中 有一个名为 用户界面 的小节
  • JSF 组件中立即=true VS 立即=false

    我正在阅读 Core JavaServer Faces 并且正在研究事件处理 它表示 如果某个组件 比如说按钮 的immediate true 那么当我们单击该按钮时 JSF 生命周期的流程验证和调用应用程序面将提前完成 这是什么意思 任何
  • bash:睡眠进程没有被杀死[重复]

    这个问题在这里已经有答案了 我写了一个简单的 bash 脚本 它除了休眠之外什么也不做 bin bash echo Sleeping sleep 180s 运行脚本后 我看到系统上正在运行两个进程 user 22880 0 0 0 0 12
  • 是否可以通过在页面上获取三个点来校正页面尺寸?

    我正在研究纠正页面 图像 的宽度 高度和角度的逻辑 点r1 r2 r3在正确图像上 点d1 d2 d3是当前图像上的对应点 我尝试了多种方法并最终解决了这个问题 public System Drawing Bitmap CorrectFil
  • Angular.js 内存泄漏,我什么时候应该开始担心

    所以我有一个相当大的应用程序构建在角度上 有很多嵌套状态 很多指令 数据表和东西 我们最近决定切换到完整的单页 而不是只有几个小的单一应用程序部分 比如文章 人员 仪表板以前都是一个小的单页应用程序 所以我开始更多地处理性能 在 Chrom
  • Android 中的模式锁定

    我想在我的应用程序中实现模式锁定 以便用户必须在使用应用程序之前绘制模式 谁能建议我该怎么做 参考这个链接 http haibison github io android lockpattern 我测试了它 这是一个非常好的例子
  • Python-将数据拆分为csv文件中的列

    我的 csv 文件中有数据 看起来像这样导入的 import csv with open Half life csv r as f data list csv reader f 数据将如下所示打印出行 例如data 0 10 2 2 等等
  • Gnuplot 中复数参数的 Bessel J 函数

    我在用gnuplot questions tagged gnuplot用于绘制我的大部分数据和函数 现在 我想绘制带有复数参数的第零类和第一类 Bessel J 函数 功能besj0 and besj1在 gnuplot 中实现 但是 根据
  • 使用 std::deque::iterator (在 C++ STL 中)搜索和删除某些元素

    我在调用以下代码时遇到问题 include
  • 如何剪辑具有平滑边缘的 BackdropFilter?

    我想申请一个背景滤镜在 Flutter 中的图像上 因此 我使用以下方法来应用过滤器 如颤振文档 https api flutter dev flutter widgets BackdropFilter class html import
  • WPF如何优化布局/渲染周期?

    WPF 如何在高度不稳定的应用程序中优化布局 渲染周期 例如 假设我快速连续两次使自定义控件无效 它会渲染两次吗 当数据 属性更新速率快于主渲染速率时是否存在性能问题 根据我的经验 我可以说不 如果速度足够快 它不会渲染两次 我不是 100
  • 如何找出matlab中匹配两条曲线的比例因子?

    I have two data sets obtained at different days The results I got from two different data sets have similar shape but di
  • 读取单词序列并将其添加到向量中

    我最近买了一个C 入门 https rads stackoverflow com amzn click com 0321714113并遇到了一个问题 我必须使用以下方式读取单词序列cin并将值存储在vector 在遇到不寻常的问题后 我发现