我正在尝试将.txt文件中的一些数据添加到结构内部的向量中,但该向量将无法编译。代码如下所示。
#include <iostream>
#include <fstream>
#include <typeinfo>
#include <string>
#include <iomanip>
#include <vector>
using namespace std;
typedef struct
{
vector<double> xAxis[100];
vector<double> yAxis[100];
} AxisValues;
void startup()
{
cout << "Numerical Integrator - calculating area under a curve.\n\n";
cout << "Enter the name of the file which contains data points (x and y coordinates) that form the curve:\n";
}
void inputVal()
{
AxisValues aValues;
int n1 = 0, n2 = 0, n3 = 0, n4 = 0, n5 = 0, n6 = 0, n7 = 0, n8 = 0;
string fileName;
ifstream infile;
cin >> fileName; //enter curve_s1.txt here
infile.open(fileName);
if (infile.fail()) { cout << "ERROR: FILE NOT DETECTED\n\n"; }
for (n1 = 0; n1 < 10; n1++)
{
infile >> aValues.xAxis[n2];
n2++;
for (n3 = 0; n3 < 10; n3++);
{
infile >> aValues.yAxis[n4];
n4++;
}
}
cout << "x y\n";
for (n5 = 0; n5 < 10; n5++)
{
cout << aValues.xAxis[n6] << " ";
n6++;
for (n7 = 0; n7 < 10; n7++);
{
cout << aValues.yAxis[n8] << "\n";
n8++;
}
}
}
double trapezoidalRule(const double &x1, const double &x2, const double &y1, const double &y2)
{
double result = 0;
result = (x2 - x1)*((y1 + y2) / 2);
return result;
}
int main()
{
startup();
inputVal();
//cout << trapezoidalRule(4, 5, 2, 3) << "\n";
system("pause");
return 0;
}
我为此收到以下错误。
E0349没有操作员&#34;&gt;&gt;&#34;匹配这些操作数E0349没有运算符&#34;&gt;&gt;&#34; 匹配这些操作数E0349没有运算符&#34;&lt;&lt;&#34;匹配这些操作数 E0349没有操作员&#34;&lt;&lt;&#;匹配这些操作数
C2679二进制&#39;&gt;&gt;&#39;:找不到采用右手操作数的运算符 类型&#39; std :: vector&gt;&#39; (或者没有 可接受的转换)
C2679二进制&#39;&gt;&gt;&#39;:找不到采用右手操作数的运算符 类型&#39; std :: vector&gt;&#39; (或者没有 可接受的转换)
C2679二进制&#39;&lt;&lt;&#39;:找不到采用右手操作数的运算符 类型&#39; std :: vector&gt;&#39; (或者没有 可接受的转换)
错误C2679二进制&#39;&lt;&lt;&#39;:找不到右侧的操作员 类型&#39; std :: vector&gt;&#39;的操作数(或者有 没有可接受的转换)
答案 0 :(得分:-1)
如果你想制作一个大小为100的矢量,你应该输入:
vector <int> vecName(100);
在这种情况下,您可以使用cin将数字从流添加到矢量(就像您在代码中所做的那样):
cin>>vecName[i];
但如果你想拥有100个矢量,你应该输入(你做过):
vector <int> vecName[100];
您可以通过临时变量添加int,如下所示:
int temp;
cin>>temp;
vecName[i].push_back(temp);
您的错误来自于将整数发送到向量而不是整数