文件访问无效

时间:2016-05-29 12:49:59

标签: c++

我正在观看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;
                }
            }


}

这非常令人沮丧,任何帮助都会受到高度赞赏!

1 个答案:

答案 0 :(得分:3)

您的测试'while(userdata =! 4)'无效。 &#39;不是&#39;运算符是!=。代码实际执行的是while (user data = !4),这意味着您将表达式!4false,因此0)分配给userdata。然后测试条件评估为false,并且不输入循环。