2016-10-29 1 views
0

(「のostream」(別名「basic_ostream 」)と 『空』)、 無効なオペランド私はLinkedListsと大学でのデータ構造のための宿題を持って

コードが、コンパイラ 『ECLIPSは』私を示していませんでしたエラーが 説明リソースパスの場所の種類

バイナリ表現( 'のostream'(別名 'basic_ostream')と '空')への不正なオペランドLinkedLists.cpp/LinkedLists/srcにライン156 C/C++の問題

と呼ばれますこれがコードなので、この問題は何ですか?どのように私はそれを修正することができますか?あなたはこれらの関数のプロトタイプを見れば

cout<<insert(); 
cout<<add(); 
cout<<deletion(); 

感謝^^あなたmain機能で

struct node { 
    int StudentNumber; 
    string name; 
    node *link,*data; 

    }; 

node *head,*newNode,*last; 
string name; 
int StudentNumber; 

node* insert(){ 
      char a='n'; 
      cout<<"hello to linked lists insertion"<<endl; 

      cout<<endl<<"please write your name : "; 
      cin>>name; 
      cout<<"please put the student number : "; 
      cin>>StudentNumber; 
      head=NULL; 

      while(a!='n'||a!='N'){ 

       newNode = new node ; 
       newNode->StudentNumber=StudentNumber; 
       newNode->name=name; 
       newNode->link=NULL; 

       if (head==NULL) 
       { 
        head=newNode; 
        last=newNode; 

       }else { 

        last->link=newNode; 
        last=newNode; 

       }//end else 


       cout<<"please write your name : "; 
       cin>>name; 
       cout<<endl<<"please put the student number : "; 
       cin>>StudentNumber; 
       cout<<"Do you want to insert new nodes ? y for yes , n for no "; 
       cin>>a; 


      }//end while 

      return head; 
    }//end insert function 


// adding nodes function 

void add() { 
    int j; 
    cout<<"please choose your option for adding new node : 1 for add at the beginning , 2 for add at the end "; 
    cin>>j; 
    if (head!=NULL) 
     { 
    switch (j) 
{ 
    // adding at the beginning 
case 1 : 
     newNode=new node; 
     newNode->link=head; 
     head=newNode; 
     cout<<"please insert your node data : "; 
     cout<<"Student Name : "<<newNode->data<<endl<<"and student number is : "<<newNode->StudentNumber; 

    break; 
    // at the end 
case 2: 
    newNode= head; 
    while (newNode->link!=NULL) 
    { 
     newNode = newNode->link; 

    }// end of while 
    last= newNode; 
    newNode = new node ; 
    newNode->link=NULL; 
    last->link=newNode; 
    cout<<"please insert your node data : "; 
    cout<<"Student Name : "<<newNode->data<<endl<<"and student number is : "<<newNode->StudentNumber; 
    break; // end of case adding at the end 


} 
}else {cout<<"The list is empty";} 

}// ending of the adding nodes function 


// delete node function 

void deletion() { 
    int s; 
    cout<<"please choose your option for deleting nodes : 1 for delete the first , 2 for delete the last node "; 
      cin>>s; 
switch (s) { 
// delete the first node 
case 1 : 
    newNode = head; 
    last=head->link; 
    head=last; 
    delete newNode; 
    break; 

    //delete the last node 
case 2: 
    newNode=head; 
    last=head; 
    while (newNode->link!=NULL) 
    { 
     last=newNode; 
     newNode=newNode->link; 
    } 
    last->link=NULL; 
    delete newNode; 
    break; 


}//end of the switch 


}// end of delete nodes function 




int main() { 
    int m; 
    cout<<"Welcome to LinkedLists Example"<<endl; 
    cout<<"enter your choice number , 1 for inserting nodes to the list , 2 for adding nodes , 3 for deleting nodes "; 
    cin>>m; 
    switch(m) { 
    case 1: 
     cout<<insert(); 
     break; 
    case 2: 
     cout<<add(); 
     break; 
    case 3: 
     cout<<deletion(); 
     break; 


    } 

return 0; 

}

答えて

0

は、あなたは、これらの3つのラインを持っている

node* insert() 
void add() 
void deletion() 

これで問題は何かを知ることができます。 insertの場合はcoutnode*を渡そうとしています。 coutにはnode*の処理方法がわかりません。同様に、addと​​は、voidcoutに渡します。coutは、処理方法がわかりません。

  1. パックinsertadd、およびdeleteの内部stringcoutにその文字列を返し、その後、:

    そこには2つの溶液です。

  2. これらの行からcoutを削除します。

私は2番目の解決策を提案します。あなたのプロジェクトにとってははるかに簡単で、insertの戻り値を使って何をしようとしているのかは分かりません。主な機能は次のようになります:

+0

ありがとう、それは役に立ちます^^ – MuSaB07

関連する問題