比较用户输入和文本文件
comparing user input with text file
我在做c++。我想比较用户在整个文本文件中输入的内容。
我的文本文件是这样的:
库马尔印度+9102223403434 01/02/1980新加坡航空8118 Elite -
我总共有15个数据项。最重要的是,如果用户没有输入正确的数据,他们只有3次尝试。
这是我的代码。请建议。
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
void Member();
using namespace std;
int main()
{
int option;
string member;
cout<<"tWelcome!n";
cout<<"n1. Member"<<endl;
cout<<"2. Non member"<<endl;
cout<<"Please enter your option."<<endl;
cin>>option;
system("cls");
{
if (option==1)
{
Member();
}
else if (option==2)
{
cout<<"awesome";
}
else
cout<<"Invalid choice!";
}
system("pause");
return 0;
}
void Member()
{
ifstream inFile;
string userName,userNationality,airline,userType,type,userBirthday,birthday,userContact,Tmiles,userBenefit;
bool found=false;
for (int i=0; i<3; i++)
{
cout << "Enter birthday: ";
cin>>birthday;
inFile.open("list.txt");
if (!inFile)
cout << "Unable to open file"<<endl;
else
{
while (!inFile.eof())
{
inFile >> userName >> userNationality >> userContact >> userBirthday >> airline >> Tmiles >> userType >> userBenefit;
if (inFile.fail())
break;
else if (userBirthday == birthday)
{
system("cls");
cout<<"welcome"<< " " << userName <<"!" << endl;
found=true;
break;
}
}
}
}
inFile.close();
if (!found) //found==false
cout<<"You have exceed the limit. PLease try again"<<endl;
}
问题是break只退出最内层的循环。
当你break时,你退出while循环,但不退出for循环,所以你会被再次询问生日。
改变这
for (int i=0; i<3; i++)
for (int i=0; i<3 && !found; i++)
相关文章:
- 文本文件中的单词链表
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- C++试图读取一个文件并输出到另一个文本文件
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 已修改的LinkedList未在文本文件本身中更新
- C++文本文件的获取线
- 为什么C++的文件 I/O 在读取文本文件时忽略初始空行?我怎样才能让它不这样做?
- 打印逐行存储的文本文件
- C++文本文件输入