-1
私のコードを実行しようとするたびに、コンパイラは常にエラーを表示します:演算子[] '(オペランドの型は' carti 'と' int 'です)|複数回。私は1つのファイルから10個の構造体を読み込み、 'for'ループを使って変数を 'c [i]'変数に代入し、3つの異なる方法で並べ替えて画面に表示しようとしています。なぜコンパイラは "演算子[] 'と一致しませんか(オペランドの型は' carti 'と' int ')"
#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";
}
}
変数cは配列ではありません。これはスカラー変数です。したがって、添字演算子は適用できません。 –
あなたは 'c'を泣かせているのですが、' c [i] 'は何と思いますか? – bolov
'c'は" carti "タイプです(これは大文字にする必要があります)。 'あなたは何をすると思いますか? – Carcigenicate