在 C++ 中读取 .txt 文件时出现问题 [已关闭]

问题描述 投票:0回答:1

我需要创建一个读取 .txt 文件的程序。该程序应该逐行读取我的文件。问题是我不知道如何调用我的 .txt 文件并逐行读取文件的内容,而我的程序必须使用 cout 和 cin 命令。

程序应该读取包含每个参与者姓名的.txt文件,其姓名下方有票数,然后显示获得最多票数的获胜者的姓名

c++ iostream
1个回答
-3
投票

如果您想创建一个程序来读取 .txt 文件以找出参与者中谁获得了最多选票,您可以使用 C++ 来实现。

首先,获取文件名:要求用户输入包含参与者姓名及其对应投票的.txt 文件的名称。

然后打开文件:使用 ifstream 打开文件。确保检查文件是否成功打开;如果没有,则显示错误消息。

然后读取文件:逐行读取文件。对于每个参与者,首先读出他们的名字,然后读出下一行的票数。将此信息存储在地图中,其中键是参与者的姓名,值是投票数。

然后确定获胜者:循环遍历地图,找到得票数最高的参与者。跟踪最高票数和相应参与者的姓名。

最后,显示获胜者:打印出获胜者的姓名及其票数。

示例代码来说明:

#include <iostream>
#include <fstream>
#include <string>
#include <map>

using namespace std;

int main() {
    string filename;
    cout << "Enter the name of the .txt file: ";
    cin >> filename; 

    ifstream file(filename);
    if (!file) {
        cerr << "Error: Could not open the file." << endl;
        return 1;
    }

    map<string, int> votes;  
    string name;
    int voteCount;

    while (getline(file, name)) {
        if (getline(file, voteCount)) {
            votes[name] = voteCount;
        }
    }

    file.close();

    string winner;
    int maxVotes = 0;

    for (const auto& entry : votes) {
        if (entry.second > maxVotes) {
            maxVotes = entry.second;
            winner = entry.first;  
        }
    }

    cout << "The winner is: " << winner << " with " << maxVotes << " votes." << endl;

    return 0;
}

确保您的 .txt 文件具有正确的格式,其中每个参与者的姓名后面的下一行是他们的投票数。 该程序使用标准输入和输出,这意味着您将在控制台中与其交互。 如果您需要更多说明或任何具体细节,请随时询问!

© www.soinside.com 2019 - 2024. All rights reserved.