用cin读取格式化输入?

时间:2014-10-27 03:29:47

标签: c++

让我们想象一下这个输入:01202014(ddmmyyyy)。

我的问题是:

如何使用纯C ++读取三个独立变量的输入?

据我所知,这可行,但这将是一个混合C / C ++,我想知道是否有任何解决方案是纯C ++。

 #include <iostream>

 int main()

 {


 int mm, dd, yy;

 scanf_s("%2d%2d%4d", &mm, &dd, &yy);
 //How can I do the same with Cin? std::cin 
 std::cout << mm << "/" << dd << "/" << yy;


 system("pause");

 }

示例:

输入:01232009

目标:

mm = 1;
dd = 23;
yy  = 2009 

1 个答案:

答案 0 :(得分:4)

由于您需要 DDMMYYYY 格式,您可以拥有以下内容:

std::string date ;
std::getline( std::cin, date );

int dd,mm,yy;
if ( date.size() ==  8 ) // Other checkings left for you
{   
    mm = std::stoi( date.substr(0,2) );   
    dd = std::stoi( date.substr(2,2) ); 
    yy = std::stoi( date.substr(4) ); 

    std::cout << dd << "/" << mm << "/" << yy ;
}

请参阅Here

现在请don't change提问!