文件访问不起作用

File access not working

本文关键字:不起作用 访问 文件      更新时间:2023-10-16

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

}

这让人非常沮丧,任何帮助都将不胜感激!

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