C++ 如何使用/以便在C+中插入日期类型(dd/mm/yyyy)时自动显示+;?
我想在我的医院管理系统中自动出现一个“斜杠”。当用户使用我的应用程序输入他们的出生日期时,C++ 如何使用/以便在C+中插入日期类型(dd/mm/yyyy)时自动显示+;?,c++,C++,我想在我的医院管理系统中自动出现一个“斜杠”。当用户使用我的应用程序输入他们的出生日期时,/分隔符应在键入时自动显示 #include <iostream> using std::cin; using std::cout; int main() { char slash; int dy, mn, yr; cout << "\nEnter your date of birth (dd/mm/yyyy) : "; cin >>
/
分隔符应在键入时自动显示
#include <iostream>
using std::cin;
using std::cout;
int main()
{
char slash;
int dy, mn, yr;
cout << "\nEnter your date of birth (dd/mm/yyyy) : ";
cin >> dy;
cin >> slash;
cin >> mn;
cin >> slash;
cin >> yr;
}
#包括
使用std::cin;
使用std::cout;
int main()
{
字符斜杠;
int-dy,mn,yr;
cout>dy;
cin>>斜杠;
cin>>mn;
cin>>斜杠;
cin>>年;
}
假设您希望在用户键入每两个字符后输出“/”,就像一种“模板”,这在一般情况下是不可能的
除非用户更改该设置,否则终端仿真器往往是行缓冲的,而您无法控制该设置。行缓冲意味着除非用户点击Enter键,否则不会向程序发送任何内容,这会立即破坏效果:
/
是自动编写的,但看起来不正确
以下是如果您完全控制终端并正确设置它时可能出现的情况:
以及我当时的PuTTY配置:
<>但是,我也必须按字符读取数据字符(否则C++不知道你在两个/四个数字之后完成),准备好在事实之后转换为数值。恶心
上述代码如下:
// Requires "stty raw" to disable line buffering
// ("stty cooked" to restore), as well as no line
// buffering on the client end
#include <iostream>
using std::cin;
using std::cout;
using std::flush;
int main()
{
char dy1, dy2;
cout << "\nEnter your date of birth (dd/mm/yyyy) : " << flush;
cin >> dy1 >> dy2;
cout << '/' << flush;
char mn1, mn2;
cin >> mn1 >> mn2;
cout << '/' << flush;
char yr1, yr2, yr3, yr4;
cin >> yr1 >> yr2 >> yr3 >> yr4;
std::cout << "\n" << dy1 << dy2
<< '/' << mn1 << mn2
<< '/' << yr1 << yr2 << yr3 << yr4 << '\n';
// Now create some useful integers from these characters
}
//需要“stty raw”来禁用行缓冲
//(“stty煮熟”恢复),以及没有行
//客户端上的缓冲
#包括
使用std::cin;
使用std::cout;
使用std::flush;
int main()
{
char-dy1,dy2;
cout-dy1>>dy2;
cout mn1>>mn2;
库特yr1>>yr2>>yr3>>yr4;
std::是否最好将整个输入读入字符串,然后进行“解析”用于查找其组件的字符串。我希望斜杠自动显示在我的医院管理系统程序中,我创建了一个类日期和个人,我将类日期继承给个人,以便它获取其出生日期。使用此类的主要目的是当用户在“出生日期”部分使用我的应用程序输入其出生日期,而填充dd“/”应该自动出现。你说的研究是什么意思?我的意思是,你应该在请求我们帮助之前进行研究。阅读东西,尝试东西。