2016-05-29 6 views
1

私はBuckyのチュートリアルをC++で見ています。彼はプログラムを作って、私は彼がしたように正確に行ったが、私は仕事のリストを得ることができません。別のプログラムでオブジェクトを表示するためにtxtファイルを取得できますが、このプログラムは何も表示したくありません。それはうまく動作し、コンパイルしますが、選択入力が行われると画面上に何も表示されません。 4を選択するとプログラムは終了しますが、1,2,3のオプションは何も表示しません。ここでファイルへのアクセスができません

は、プログラムを説明するビデオだ:https://www.youtube.com/watch?v=86rBqzYIbjA&index=68&list=PLAE85DE8440AA6B83#t=3.934331

マイコード:

#include <iostream> 
#include <string> 
#include <fstream> 

using namespace std; 

int getUserData(); 
void display(int x); 


int main(){ 


    int userdata; 

    userdata = getUserData(); 

    while(userdata =! 4){ 

     switch(userdata){ 
      case 1: 
       display(1); 
       break; 
      case 2: 
       display(2); 
       break; 
      case 3: 
       display(3); 
       break; 
      default: 

     } 
     userdata = getUserData(); 


    } 


} 

int getUserData(){ 

    int choice; 

    cout << "Enter 1 to view all the neutral items" << endl; 
    cout << "Enter 2 to view all the helpful items" << endl; 
    cout << "Enter 3 to view all the harmful items" << endl; 
    cout << "Enter 4 to exit" << endl; 
    cin >> choice; 

    return choice; 

} 

void display(int x){ 


    ifstream obj; 
    obj.open("prog2.txt"); 

    string chars; 
    int powers; 

      if(x==1){ 
       while(obj>>chars>>powers) 
       if(powers==0){ 
        cout << chars<<' '<<powers<< endl; 

       } 
      } 

      if(x==2){ 
       while(obj>>chars>>powers) 
       if(powers>0){ 
        cout << chars<<' '<<powers<< endl; 
       } 
      } 


      if(x==3){ 
       while(obj>>chars>>powers) 
       if(powers<0){ 
        cout << chars<<' '<<powers<< endl; 
       } 
      } 


} 

これはかなりイライラなっていると、すべての任意のヘルプは高く評価されるだろう!

+0

ファイル 'prog2.txt'は実行可能ファイルと同じフォルダに保存されていますか? – usr2564301

+2

一般に、I/O操作を開始する前にファイルが正常に開かれているかどうかも確認する必要があります。 –

+0

@Thugnificient:デバッガを実行したいかもしれません.... – jpo38

答えて

3

あなたのテスト'while(userdata =! 4)'は無効です。 'not is'演算子は!=です。実際にコードが行うのはwhile (user data = !4)です。つまり、式!4false、つまり0)をuserdataに割り当てていることを意味します。テスト条件は次にfalseと評価され、ループは入力されません。

+0

私はそれが誤字だと思ったが、あなたが正しいと思う。 –

関連する問題