如何读取n至n+我在c++中排行榜

发布于 2025-01-21 10:29:42 字数 719 浏览 0 评论 0原文

这是要读的文件

  5
name1
name2
name3
名称4
名称5
 

我当前阅读的代码是:

void readData(string fileName, string names[], int n) {
    ifstream myFile("file.txt");
    string line;

    if (myFile.is_open())
    {
        myFile >> n;  // read first line
        cout << n; 

        for (int i = 0; i < n; ++i) {
            getline(myFile, line);
            names[i] = line;
            cout << names[i] << endl;
        }
    }
}

我想将名称放入数组名称[],但是即使n = 5,它似乎只运行4次。这是为什么?

这是我目前得到的输出:

5
Name1
Name2
Name3
Name4

This is the file to be read

5
Name1
Name2
Name3
Name4
Name5

My current code to read this is:

void readData(string fileName, string names[], int n) {
    ifstream myFile("file.txt");
    string line;

    if (myFile.is_open())
    {
        myFile >> n;  // read first line
        cout << n; 

        for (int i = 0; i < n; ++i) {
            getline(myFile, line);
            names[i] = line;
            cout << names[i] << endl;
        }
    }
}

I want to put the names into the array names[], but even though n = 5, it seems like it runs only 4 times. Why is that?

This is my current output that I get:

5
Name1
Name2
Name3
Name4

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

铜锣湾横着走 2025-01-28 10:29:42

当您做myfile&gt;&gt;时,您没有阅读整行。 n。因此,第一个getline只是阅读该行的其余部分,这是空

 myFile >> n; 
 getline(myFile, line); // read rest of line

 getline(myFile, line); // read whole line
 n =  stoi(line);   // convert to int

You didnt read the whole first line when you did myFile >> n. So the first getline just read the rest of that line, which is empty

Do

 myFile >> n; 
 getline(myFile, line); // read rest of line

or

 getline(myFile, line); // read whole line
 n =  stoi(line);   // convert to int
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文