从文件读取数字并将其存储在数组c ++

时间:2018-09-03 02:46:49

标签: c++ arrays ifstream

我的程序的目标是最终将一个充满数字(由用户选择)的文件读入数组,并输出最小值和最大值。但是,我无法获取代码以在文件中输出正确数量的输入,我希望将其用作数组的大小。

我现在拥有的代码是

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>

using namespace std;

int main(){
    string fileName;
    int count(0);
    cout << "Enter input file name: ";
    cin >> fileName;
    ifstream in_file;
    in_file.open(fileName);
    if(in_file.is_open()){
        in_file >> count;
        }
    cout << "The number of entries is " << count;
    int arrayNumbers[count];    
    for (int i = 0; i < count; ++i){
        in_file >> arrayNumbers[i];
        cout << arrayNumbers[i] << endl;
    }
    in_file.close();
}

我在与.cpp文件相同的目录中有一个名为tester.txt的文本文件,但是它只有9个条目(单独的行为1-9),但是当我计算出计数时,它说计数为12。 我在其他问题(例如我的

)中看到了
in_file >> count;

计算一个文件中有多少个数字,但是自从我第一次从文件中读取数据以来,我不明白它的作用。 我要读取的文件包含以下内容

1
2
3
4
5
6
7
8
9

我还没有开始问题的第二部分,找到最小值和最大值,但是我只是要对数组进行排序,然后显示arrayNumber [0]和arrayNumber [count-1]来显示最小值和最大值,但是首先我需要知道根据输入文件来制作数组的大小。

2 个答案:

答案 0 :(得分:2)

  

但我不知道这是什么

它将ifstream的第一个数字读入count

对于必须按预期工作的代码,您需要将数字总数添加到输入文件的开头,以便文件看起来像这样。

9
1
2
3
4
5
6
7
8
9

答案 1 :(得分:0)

感谢所有建议,我设法使它按预期工作。我将在下面发布我的代码。

protected override async void OnActivated(IActivatedEventArgs args)
{
    await ActivationService.ActivateAsync(args);

    if (args.Kind == ActivationKind.Protocol)
    {
        var uriArgs = args as ProtocolActivatedEventArgs;

        if (uriArgs != null)
        {
            //DetailPagePage detailpage = new DetailPagePage();
            var stuff = DetailPagePage.pageid;
            MyModel parameter = null;
            if (uriArgs.Uri.Host == stuff.ToLower())
            {
                switch (stuff)
                {
                    case "Title1":
                        parameter = new MyModel
                        {
                            Title = "Title1",
                            Subtitle = "My Subtitle 1",
                            Description = "My Description 1 goes here."
                        };
                        break;
                    case "Title2":
                        parameter = new MyModel
                        {
                            Title = "Title2",
                            Subtitle = "My Subtitle 2",
                            Description = "My Description 2 goes here."
                        };
                        break;
                    //Some other case      
                }
                NavigationService.Navigate(typeof(DetailPagePage), parameter);
            }
        }
        Window.Current.Activate();
    }
}