如何在c ++

时间:2018-03-12 15:03:08

标签: c++ function file-io

我无法从我创建的文件中调用数据,名为' numbers.txt'。该文件的编号为1-26,应该放在一个数组中。现在它没有编译。我有类似的项目没有问题。所以我不知道自己做错了什么。以下是我正在使用的代码。

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

// function prototypes:
int readEncodingCipher(string filename, int encodeKey[], int size);

int main()
{
    string fileName;
    const int size = 26;
    int encodeKey[size];

    //Requests the name of a file to read from.
    cout << "Please enter a file name with a key: ";
    cin >> fileName;
    readEncodingCipher(fileName, encodeKey, size);

    system("pause");
    return 0;
}

int readEncodingCipher(string fileName, int encodeKey[], int size)
{
    string fileName;
    ifstream inFile;
    int num;
    int counter = 0;
    inFile.open(fileName);

    if (inFile)
    {
        while (inFile >> num && counter <= size)
        {
            encodeKey[counter] = num;
            counter++;
        }
    }
    else
    {
        cout << "unable to locate file";
    }
    inFile.close();
}

1 个答案:

答案 0 :(得分:4)

我假设您收到错误消息

&#xA;&#xA;
 错误:声明'std :: __ cxx11 :: string fileName'隐藏参数&#xA; < / code> 
&#xA;&#xA;

在你的函数

&#xA;&#xA;
  int readEncodingCipher(string fileName,int encodeKey [], int size)&#xA; {&#xA; string fileName;&#xA;  
&#xA;&#xA;

局部变量 fileName 隐藏参数 filename 。您必须更改变量名称。修复此错误后,它会为我编译。

&#xA;&#xA;

此外,您应该修复函数的返回类型。将其更改为 void 或返回值。

&#xA;&#xA;

您应该修复while循环的计数器。最后一个元素是 encodeKey [size - 1] ,所以while循环应该停在这个元素上。

&#xA;