아마추어 질문 .... 내 코드는 사용자가 3 게이트를 선택할 수있는 논리 게이트 메뉴를 가지고 있습니다. 그런 다음 프로그램은 헤더 파일의 네임 스페이스를 찾고 out []에 저장 한 해당 게이트의 출력을 반환합니다. 게이트 출력 잘 작동하지만 스위치 케이스의 3 가지 선택이 끝난 후 그들을 인쇄 할 수 없습니다. 나는 그것의 자신의 함수 "void output()"에 넣으려고했으나 사용자가 두 번 더 게이트를 선택하기 전에 출력을 조기에 출력한다.스위치 케이스 후 조기 출력
아웃 Y 1 ~ 3 함께 인쇄해야하지만, 첫 번째 인쇄 사용자는 로직 입력을 입력 후 즉시
나는 문제가 당신이menu
함수 내에서
output
를 호출하기 때문에, 수 당신 반면 있다고 생각
#include <iostream>
#include <iomanip>
#include "lab3.h"
using namespace std;
using namespace Gates;
void output(int o[]);
int menu(int, int);
int main()
{
int a;
cout << "Types of gates available:\n"
<< "1) AND\n"
<< "2) OR\n"
<< "3) NAND\n"
<< "4) NOR\n"
<< "5) XOR\n";
for(int i=0; i<3; i++)
{
cout << "\nSelect gate #" << i+1 << " (1 to 5) => ";
cin >> a;
menu(a, i);
}
}
int menu(int x, int j)
{
int out[3];
int a, b;
switch(x)
{
case 1:
cout << "Enter two inputs for gate #" << j+1 << " (seperated by a space) => ";
cin >> a >> b; // two inputs for gate
out[j] = Gates::AND(a, b); //store gate output in out1 (1 or 0)
break;
case 2:
cout << "Enter two inputs for gate #" << j+1 << " (seperated by a space) => ";
cin >> a >> b;
out[j] = Gates::OR(a, b);
break;
case 3:
cout << "Enter two inputs for gate #" << j+1 << " (seperated by a space) => ";
cin >> a >> b;
out[j] = Gates::NAND(a, b);
break;
case 4:
cout << "Enter two inputs for gate #" << j+1 << " (seperated by a space) => ";
cin >> a >> b;
out[j] = Gates::NOR(a, b);
break;
case 5:
cout << "Enter two inputs for gate #" << j+1 << " (seperated by a space) => ";
cin >> a >> b;
out[j] = Gates::XOR(a, b);
break;
}
output(out);
return 0;
}
void output(int o[])
{
cout << "\nOutputs => " << endl;
for(int i=0; i < 3; i++)
{
cout << setw(10) << "\ny"<< i+1 << " = " << o[i];
}
}
샘플 입력/출력을 제공 할 수 있습니까? –
하나 이상의 switch-case 선택에 따라 출력을 표시하기위한 올바른 구문을 알고 싶습니다. – steeele
@steeele _ "하나 이상의 switch-case 선택에 따라"_ 스위치 케이스를 루프로 실행해야합니다. 하나 이상의 가치가 선택되어야합니까, 아니면 제가 잘못 이해 했습니까? –