C++ 匹配文件中的字符串并获取行号

2024-03-13

我有一个包含前 1000 个婴儿名字的文件。我想询问用户一个名字...搜索文件...并告诉用户该名字对于男孩名字的排名以及女孩名字的排名。如果它不是男孩名字或女孩名字,它会告诉用户它不属于该性别的流行名字。

该文件的布局如下:

Rank Boy-Names Girl-Names
1    Jacob     Emily
2    Michael   Emma
.
.
.

输入所需的输出Michael将会:

迈克尔是男孩名字中第二受欢迎的名字。

如果迈克尔不是女孩的名字,则应该说:

迈克尔并不是最受欢迎的女孩名字之一

但如果是的话,它会说:

迈克尔是(排名)女孩名字之一

到目前为止我的代码如下..我似乎无法弄清楚。谢谢你的帮助。

#include <iostream>
#include <fstream>
#include <string>
#include <cctype>
using namespace std;
void find_name(string name);

int main(int argc, char **argv)
{
    string name;
    cout << "Please enter a baby name to search for:\n";
    cin >> name;
    /*while(!(cin>>name))
    {
        cout << "Please enter a baby name to search for:\n";
        cin >> name;
    }*/
    find_name(name);

    cin.get();
    cin.get();
    return 0;
}

void find_name(string name)
{
    ifstream input;
    int line = 0;
    string line1 = " ";
    int rank;
    string boy_name = "";
    string girl_name = "";
    input.open("/<path>/babynames2004.rtf");
    if (!input)
    {
        cout << "Unable to open file\n";
        exit(1);
    }

    while(input.good())
    {
        while(getline(input,line1))
        {
            input >> rank >> boy_name >> girl_name;
            if (boy_name == name)
            {
                cout << name << " is ranked " << rank << " among boy names\n";
            }
            else
            {
                cout << name << " is not among the popular boy names\n";
            }
            if (girl_name == name)
            {
                cout << name << " is ranked " << rank << " among girl names\n"; 
            }
            else
            {
                cout << name << " is not among the popular girl names\n";
            }
        }
    }
    input.close();
}

在你扫描完列表之前,你就已经承认失败了(“X 不在流行的 Y 名字之列”)。一个很好的简单方法(如果不是最有效的话)是在宣布没有匹配项之前记住排名直到列表末尾。像这样的事情:

bool boyrank = false, girlrank = false;

while(getline(input,line1))
{
  input >> rank >> boy_name >> girl_name;
  if (boy_name == name)
    {
      cout << name << " is ranked " << rank << " among boy names\n";
      boyrank = true;
    }

  if (girl_name == name)
    {
      cout << name << " is ranked " << rank << " among girl names\n";
      girlrank = true;
    }
}

if(boyrank == false)
{
  cout << name << " is not among the popular boy names\n";
}
if(girlrank == false)
{
  cout << name << " is not among the popular girl names\n";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 匹配文件中的字符串并获取行号 的相关文章

  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • C# 和 Javascript SHA256 哈希的代码示例

    我有一个在服务器端运行的 C 算法 它对 Base64 编码的字符串进行哈希处理 byte salt Convert FromBase64String serverSalt Step 1 SHA256Managed sha256 new S
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob

随机推荐

  • Angular - 使用 Restangular 时中止 ajax 请求

    我有一个方法调用角度服务 从而通过该服务发出 ajax 请求 我需要确保如果多次调用此方法 则先前的请求将被中止 如果尚未解决 该方法可以被多次调用 这个方法其实是来自ngTable上的ngTableParams getData funct
  • 如何监听 MongoDB 集合的更改?

    我正在创建一种后台作业队列系统 使用 MongoDB 作为数据存储 在派生工作人员来处理作业之前 如何 侦听 对 MongoDB 集合的插入 我是否需要每隔几秒轮询一次以查看与上次相比是否有任何更改 或者我的脚本是否可以等待插入发生 这是我
  • Web应用程序不会加入Infinispan集群

    我最近一直在玩 Infinispan 之前没有使用 Infinispan 的经验 我遇到了一个有趣的问题 我想知道是否有人能够阐明它 我有一个独立的 Java 应用程序 GridGrabber jar 它捆绑了 Infinispan jar
  • 使用后台附件:在 ipad 上的 safari 中修复

    我希望重新创建类似于科普应用程序的效果 基本上有一个大的背景图像 然后在其上有 HTML CSS 层 当用户滚动内容时 图像的背景位置应保持在原位 而不是滚动 显然 在 常规 浏览器中我会使用background attachment fi
  • NodeJS My SQL 查询与 Chain Promise

    我有3个函数 我想逐步调用这个函数 例如当我调用第一个函数并获取结果时 我必须调用第二个函数并传递从第一次调用返回的参数 在完成第二个调用后 我必须调用第三个函数并传递从第二个函数返回的参数 1 getCategory function b
  • 计算无符号整数中位转换数量的最快方法

    我正在寻找最快的方法来计算位转换的数量unsigned int 如果 int 包含 0b00000000000000000000000000001010 转换次数为 4 如果 int 包含 0b00000000000000000000000
  • 无法更改导航控制器中导航栏的高度(它比正常情况宽得多)

    我有一个从主 TabBarController 扩展并扩展 ViewController 的 NavigationController 和 VC 扩展至 2x TableView 因此 TabBar gt NavigationControl
  • Rails 中的 Object#presence 有什么意义?

    在 Rails 文档中 提供的例子 http api rubyonrails org classes Object html method i presence为了Object presence方法是 region params state
  • 当引导服务器关闭时,具有 transactionIdPrefix 的 DefaultKafkaProducerFactory 会无限等待

    Hy 我正在使用 spring kafka 1 3 0 RELEASE 创建事务生产者 当引导服务器关闭时 DefaultKafkaProducerFactory 会无休止地等待 直到引导服务器启动 我究竟做错了什么 我可以设置超时和 或其
  • 更改 GdkPixbuf (GTK3) 中像素的颜色

    我在用着Gtk StatusIcon 并且想要改变某些像素的颜色 我有一段工作代码 它加载一个带有我想要设置的颜色的 1x1 像素 PNG 文件 然后将其复制到图标 Pixbuf 虽然这种方法有效 但它有一个明显的缺点 即必须为每种颜色创建
  • 尝试在 Windows 2016 Core 容器中创建计划任务时出错

    我正在尝试构建一个包含自定义计划任务的容器 这是我的 dockerfile FROM microsoft windowsservercore RUN schtasks create tn hello sc daily st 00 00 tr
  • PHP登录错误未定义索引

    我正在尝试使用此代码登录 session start require connect php username POST username password POST password if username password query
  • ErrorColumn 值不作为 Lineage ID 存在

    在插入目标表期间 发生的任何错误都会被重定向到错误表 我们可以在其中看到ErrorCode and ErrorColumn 问题是我们得到了一个值ErrorColumn它不存在于包中的任何地方 也就是说 没有一个列具有LineageID等于
  • 当我上传到服务器时相机图像发生旋转

    我要么拍照 要么从图库中选择一张照片 然后按应有的方式在 ImageView 中显示它 就旋转而言 但是 每当我将其上传到服务器时 它总是以横向模式上传 即使它在我的画廊中处于纵向模式 我该如何解决这个问题 private void tak
  • Rails 4 + Capistrano 3:致命:部署时无法从远程存储库读取

    我在使用 Capistrano 3 部署 Rails 4 应用程序时遇到以下错误 INFO 87512eb8 Running usr bin env chmod x tmp magnificent git ssh sh as email p
  • svn cleanup: sqlite: 数据库磁盘映像格式错误

    我试图做一个svn cleanup因为我无法在工作副本中提交更改 并且出现以下错误 sqlite 数据库磁盘映像格式错误 我现在能做什么 首先 打开command terminal在存储库根目录 具有 svn作为子文件夹 cd path t
  • 用于 ruby​​ gems 的新 10.9 OSX 的命令行工具?

    安装 OSX Mavericks 10 9 演示后 我在运行捆绑包后得到这个 Gem Installer ExtensionBuildError ERROR Failed to build gem native extension User
  • R - 根据每行的函数获取矩阵的列索引

    gt set seed 2014 gt m lt matrix sample 10 16 replace TRUE nrow 4 gt m 1 2 3 4 1 3 6 1 7 2 2 1 2 6 3 7 10 7 7 4 4 7 1 5 对
  • 将多行文本边框作为更多文本中的块

    我正在尝试在段落内的多行文本周围设置边框 我基本上不希望边框出现在每一行上 而是出现在所有行周围 我意识到我可以将所有文本包装在一个 div 中 但它会阻止该文本与段落的其余部分 我想要一个流畅的段落 并且对于多行中的一个句子 有一个顶部边
  • C++ 匹配文件中的字符串并获取行号

    我有一个包含前 1000 个婴儿名字的文件 我想询问用户一个名字 搜索文件 并告诉用户该名字对于男孩名字的排名以及女孩名字的排名 如果它不是男孩名字或女孩名字 它会告诉用户它不属于该性别的流行名字 该文件的布局如下 Rank Boy Nam