矢量和频率搜索

时间:2013-06-13 00:16:53

标签: c++ vector binary

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

这可能是我失踪的小事......

#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;
}

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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

  vector<int> test(101, 0); // Removed whitespace and added semi-colon.
  while(inFile >> aTest) {  // Use braces for a new block.
    test[aTest]++;
  }