我正在创建一个记录现有文件中数字频率的程序。我的矢量名称是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;
}
答案 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]++;
}