[英]Method of using getline function and making a program to create a seat list
我是 C++ 的初学者,我正在尝试编写一个程序来帮助操作员创建座位列表。
然后,我写了几行来提示用户使用以下格式仅输入 Name、passportId、Seat 一行:Name/PassportID/SeatNumSeatChar
我下面贴的代码是想创建一个临时的Name, PassportId 和Seat 来查看是否在当前座位计划中分配,二维字符arrays 可以匹配当前座位计划(也是二维字符数组)进行检查。
如果该批次中某个用户请求的座位位置已经分配,则该用户的分配添加请求将不成功。 只有成功的分配添加请求才会更新系统。 (不包含在代码中)
#include <iostream>
#include <Windows.h>
#include <string.h>
#include <string>
using namespace std;
int add_Assignment_In_Batch();
int main(){add_Assignment_In_Batch()}
int add_Assignment_In_Batch(){
string Name[13][6] = { "none" }, PassportID[13][6], Seat_Num[13][6], Seat_Char[13][6];
int Row = 0, Column = -1;
cout << "enter name/passportID/Seat:,until 0/ is entered." << endl;
do { //input format: Name/passportID/Seat into array
if (Column == 5)Row++;
if (Column == 5)Column = -1;
Column++;
if (Row == 12 && Column == 5)break;
getline(cin, Name[Row][Column], '/');
if (Name[Row][Column] == "0")break;
getline(cin, PassportID[Row][Column], '/');
getline(cin, Seat_Num[Row][Column], ('A', 'B', 'C', 'D', 'E', 'F')); //input Seat Number,when encounter A B C D E or F,stop getline
getline(cin, Seat_Char[Row][Column]);
} while (Name[Row][Column] != "0");
Column--; //print out all the information below
cout << endl << "*** Total Requests ***" << endl;
if (Row != 0) {
for (int i = 0; i < Row; i++)
for (int k = 0; k < 6; k++) //e.g [1][0]Name: Chris PassportID: 123456A Seat: 10A
{
cout << "[" << i << "]" << "[" << k << "] " << "Name: " << Name[i][k] << " PassportID: " << PassportID[i][k] << " Seat: " << Seat_Num[i][k] << Seat_Char[i][k] << endl;
}
}
for (int i = 0; i <= Column; i++)
cout << "[" << Row << "]" << "[" << i << "] " << "Name: " << Name[Row][i] << " PassportID: " << PassportID[Row][i] << " Seat: " << Seat_Num[Row][i] << Seat_Char[Row][i] << endl;
return 0;
}
预期输入(示例):
Chris/12345678A/10A
Kyle/24689C/2D
0/
10
分配给Seat_Num
A
分配给Seat_Char
我最终需要输入ABCDEF
才能完成getline(cin,Seat_Num[1][1],('A','B','C','D','E','F'));
预期输出(示例):
[1][0]Name: Chris PassportID: 123456A Seat: 10A
[1][1]Name: Kyle PassportID: 24689C Seat: 2D
...
下面是执行结果:
$ ./test
enter name/passportID/Seat:,until 0/ is entered.
Chris/12345678A/10A
Kyle/24689C/2D
0/
0/
0/
0/
*** Total Requests ***
[
它没有停止getline()
并让用户继续输入。
当getline()
遇到 AB C DE 或 F 时,我不知道要完成上述语句。
我会重新开始,这就是你需要的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.