0

我正在创建一个程序来记录现有文件中数字的频率。我的向量名称是测试,为什么它说“测试”没有定义?

这可能是我缺少的一些小东西......

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


int main()
{
string fileName;
int aTest;

cout << "Enter a File Name:";
cin >>fileName;

ifstream inFile (fileName.c_str());
if (! inFile)
{
cout << "!!Error in opening file 'test.dat'"<< endl;
    }

while( inFile >> aTest)

    vector <int> test (101, 0)

    test[aTest]++;

system("pause");
return 0;
}
4

2 回答 2

1

while您应该在循环之外定义您的向量,并且您应该添加适当的内容{}以使您的逻辑正确。

尝试:

 vector <int> test(101, 0); //^missing semicolon
 while( inFile >> aTest) {
    test[aTest]++;
  }

同时,不要使用using namespace std,这被认为是不好的做法。

除了:

  #include <ostream> //^^remove one of them, don't include unnecessary headers
  #include <iostream>
于 2013-06-13T00:19:25.580 回答
0

您有语法错误,test应该在循环之外定义。

  vector<int> test(101, 0); // Removed whitespace and added semi-colon.
  while(inFile >> aTest) {  // Use braces for a new block.
    test[aTest]++;
  }
于 2013-06-13T00:21:13.663 回答