C++ 为什么编译器会显示错误";与';操作员[]和#x27;(操作数类型为';carti';和';int';);
每次尝试运行代码时,编译器都会多次显示错误:“运算符[]”(操作数类型为“carti”和“int”)不匹配。我试图从一个文件中读取10个结构,并使用“for”循环将它们分配给“c[I]”变量,用三种不同的方式对它们进行排序,然后在屏幕上打印它们。(这是学校的作业) 这是我目前的代码:C++ 为什么编译器会显示错误";与';操作员[]和#x27;(操作数类型为';carti';和';int';);,c++,C++,每次尝试运行代码时,编译器都会多次显示错误:“运算符[]”(操作数类型为“carti”和“int”)不匹配。我试图从一个文件中读取10个结构,并使用“for”循环将它们分配给“c[I]”变量,用三种不同的方式对它们进行排序,然后在屏幕上打印它们。(这是学校的作业) 这是我目前的代码: #include <iostream> #include <fstream> using namespace std; struct carti{ char nume[41];
#include <iostream>
#include <fstream>
using namespace std;
struct carti{
char nume[41];
float pret;
float rating;
}c;
int main(){
int i,j;
ifstream fin;
fin.open("carti.txt");
for(i=0;i<10;i++){
getline(c[i].nume,41)
fin>>c[i].pret;
fin>>c[i].rating;
cout<< c[i]<<"\n";
}
for(i=0;i<10;i++){
if(c[i].nume[0]>c[i+1].nume[0]){
c[i]=c[i+1];
}
}
for(i=0;i<10;i++){
cout<<c[i]<<"\n";
}
for(i=0;i<10;i++){
if(c[i].pret>c[i+1].pret){
c[i]=c[i+1];
}
}
for(i=0;i<10;i++){
cout<<c[i]<<"\n";
}
for(i=0;i<10;i++){
if(c[i].rating>c[i+1].rating){
c[i]=c[i+1];
}
}
for(i=0;i<10;i++){
cout<<c[i]<<"\n";
}
}
#包括
#包括
使用名称空间std;
结构卡蒂{
查努姆[41];
浮动pret;
浮动评级;
}c;
int main(){
int i,j;
流鳍;
财务公开(“carti.txt”);
对于(i=0;i>c[i].pret;
fin>>c[i]。评级;
cout您可能需要执行以下操作:
struct carti{
char nume[41];
float pret;
float rating;
}c[10];
话虽如此,您的代码还有其他问题
比如说,你想做cout变量c不是数组。它是一个标量变量。因此你可能不应用下标运算符。你认为c
是什么?你认为c[i]
是什么?c
是“carti”类型的(应该大写)。你期望c[i]
该做什么?避免使用原始数组。改用std::vector
。