我无法从我创建的文件中调用数据,名为' 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();
}
答案 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
。您必须更改变量名称。修复此错误后,它会为我编译。
此外,您应该修复函数的返回类型。将其更改为 void
或返回值。
您应该修复while循环的计数器。最后一个元素是 encodeKey [size - 1]
,所以while循环应该停在这个元素上。