다음 프로그램은 미리 정의 된 형식 인 클래스를 사용하여 사용자가 입력 한 계좌 번호를 얻는 프로그램입니다. 처음 두 개는 알파벳이고 그 다음 세 자리는 분기 코드이며 나머지 10 자리는 일부 난수. 입력 된 형식이 형식이 아닌 경우 다시 입력하라는 메시지가 표시됩니다. 나는 다음과 같이 구현하려고했다. 첫 번째 시도에서 올바른 입력을 제공하면 제대로 작동하지만 else 코드를 확인할 때 'acno'값을 'tac'으로 반환하는 데 문제가 있습니다. 누군가가 .... 코드 감사합니다 .... PLS에서 오류를 해결할 수C++에서 문자열을 반환하는 함수
#include<iostream>
#include<string>
using namespace std;
class saving
{
string acc_no,tac;
string br_code;
public:
void input();
} sav;
string chkno(string acno)
{
string cc,bc,no,ano;
int i,len,a=1,b=1,c=1;
for(len=0; acno[len]!='\0'; len++);
if(len!=15)
{
cout<<"Account No. is Invalid.Please enter again.";
cout<<"\nAccount No : "; cin>>ano;
chkno(ano);
}
else
{
cc=acno.substr(0,2); bc=acno.substr(2,3); no=acno.substr(5,10);
for(i=0; i<2; i++)
{
if(!isalpha(cc[i]))
{
a=0; break;
}
}
for(i=0; i<3; i++)
{
if(!isdigit(bc[i]))
{
b=0; break;
}
}
for(i=0; i<10; i++)
{
if(!isdigit(no[i]))
{
c=0; break;
}
}
if(a==1&&b==1&&c==1)
{
cout<<"\nValid - Account no : "<<acno;
return acno;
}
else
{
cout<<"Incorrect format.Please enter again";
cout<<"\nAccount No : "; cin>>ano;
chkno(ano);
}
}
}
void saving::input()
{
cout<<"Account No : ";
cin>>acc_no;
tac=chkno(acc_no);
acc_no=tac;
cout<<"\nAcc.No :"<<acc_no;
br_code=acc_no.substr(2,3);
cout<<"\nBranch Code is :"<<br_code;
}sav;
int main()
{
sav.input(); return 0;
}
오류가 표시 되니? – Shoe
chkno 함수에는 return 문을 내지 않은 경로가 여러 개 있습니다. – Eelke