主题:如何该近这个程序,到底哪里出了问题?
// Note:Your choice is C++ IDE
#include <iostream>
#include "string.h"
#include "iomanip"
#include "liu.cpp"// 自定义的
#define A <<setw(5) // 定义一个空格字符
typedef struct stud
{char name[10];// 没有开辟空间,导致了输入错误
char sex[10];// 上面的我引发了错误,开始定义为int sex[10];不细心
int year;
char born[20];
union work // 共用体
{ char worker[10];
char leader[10];
}st;
}Hong;
using namespace std;
int main()
{ // BEGIN
const int B=3;
Hong WORK[B];
int i;
cout<<endl<<"请输入你的员工信息"<<endl;
i=0;
cout<<"***姓名****性别*****年龄*****生日*****领导或者工人********"<<endl;
while(i<B)
{ cout<<"INTER****";
putchar(10);
gets(WORK[i].name); // cin与scanf都不能接受空格
cin>>WORK[i].sex>>WORK[i].year>>WORK[i].born;
if(WORK[i].year>40)
{ cout<<endl<<"请输入领导的职务"<<endl;
gets(WORK[i].st.leader);
}
else
{ cout<<endl<<"请输入员工的"<<endl;
gets(WORK[i].st.worker);// 第二次运行时老是出现,就是用lu jdkf中间包括空格的时候,就会出现问题了
}
i++;
}
cout<<endl<<"*******员工与领导职务表*********"<<endl;
for(i=0;i<B;i++)
{ if(WORK[i].year>40)
cout<<"领导的信息由"<<WORK[i].name A<<WORK[i].sex A<<WORK[i].year A<<WORK[i].born A<<WORK[i].st.leader A<<endl;
else
cout<<"员工的信息由"<<WORK[i].name A<<WORK[i].sex A<<WORK[i].year A<<WORK[i].born A<<WORK[i].st.worker A<<endl;
}
// END
return 0;
}
这个程序的主要存在的问题就是 ,我用scanf输入的时候,如输入liu ting名字的时候,第一个是正常的,但是,第二次开始,就是变得自己运行直到结束,就是说,我感觉老是有哪里在被自动复制了,程序直接跳到了结束,,,,,
请各位没法测试一下,,然后看看到底是哪里的错误导致的,,,麻烦了
#include <iostream>
#include "string.h"
#include "iomanip"
#include "liu.cpp"// 自定义的
#define A <<setw(5) // 定义一个空格字符
typedef struct stud
{char name[10];// 没有开辟空间,导致了输入错误
char sex[10];// 上面的我引发了错误,开始定义为int sex[10];不细心
int year;
char born[20];
union work // 共用体
{ char worker[10];
char leader[10];
}st;
}Hong;
using namespace std;
int main()
{ // BEGIN
const int B=3;
Hong WORK[B];
int i;
cout<<endl<<"请输入你的员工信息"<<endl;
i=0;
cout<<"***姓名****性别*****年龄*****生日*****领导或者工人********"<<endl;
while(i<B)
{ cout<<"INTER****";
putchar(10);
gets(WORK[i].name); // cin与scanf都不能接受空格
cin>>WORK[i].sex>>WORK[i].year>>WORK[i].born;
if(WORK[i].year>40)
{ cout<<endl<<"请输入领导的职务"<<endl;
gets(WORK[i].st.leader);
}
else
{ cout<<endl<<"请输入员工的"<<endl;
gets(WORK[i].st.worker);// 第二次运行时老是出现,就是用lu jdkf中间包括空格的时候,就会出现问题了
}
i++;
}
cout<<endl<<"*******员工与领导职务表*********"<<endl;
for(i=0;i<B;i++)
{ if(WORK[i].year>40)
cout<<"领导的信息由"<<WORK[i].name A<<WORK[i].sex A<<WORK[i].year A<<WORK[i].born A<<WORK[i].st.leader A<<endl;
else
cout<<"员工的信息由"<<WORK[i].name A<<WORK[i].sex A<<WORK[i].year A<<WORK[i].born A<<WORK[i].st.worker A<<endl;
}
// END
return 0;
}
这个程序的主要存在的问题就是 ,我用scanf输入的时候,如输入liu ting名字的时候,第一个是正常的,但是,第二次开始,就是变得自己运行直到结束,就是说,我感觉老是有哪里在被自动复制了,程序直接跳到了结束,,,,,
请各位没法测试一下,,然后看看到底是哪里的错误导致的,,,麻烦了