c++ - 在C++中将输入分离为多个变量

标签 c++

如果我向用户询问由破折号分隔的输入,我如何将它们存储到多个变量中?由破折号分隔的每个部分一个。 例如,这是行不通的。

cout << "enter date" << endl;
// user inputs something like 11/11/1980
cin >> month

我知道输入存储在 iostream 中,但我如何存储第一个斜杠后的内容

最佳答案

我认为您应该考虑使用 C++11 已经提供给您的日期工具。

time.h 的 struct tmit's own streaming operators .所以我会做这样的事情:

#include <iostream>
#include <sstream>
#include <iomanip>
#include <ctime>

using namespace std;

int main() {
    tm t;
    istringstream ss("11/11/1980");

    ss >> get_time(&t, "%m/%d/%Y");

    cout << t.tm_mon + 1 << ' ' << t.tm_mday << ' ' << t.tm_year << endl;

    return 0;
}

我不知道为什么,但值得注意的是 tm.tm_mon 是基于 0 的...

另请参阅:http://en.cppreference.com/w/cpp/io/manip/put_time

关于c++ - 在C++中将输入分离为多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28222325/

相关文章:

C++:为模板参数指定基类

c++ - 可调整大小的数组和分摊运行时

c# - 在 System::Collections::Generic::List<T> 类型的列表中列出是可能的吗?

c++ - 如何在 Windows 中使用手写的 makefile 编译和构建 C++ 应用程序?

c++ - 如何在模板实例化时故意导致编译时错误

c++ - 循环后跳过第一个函数输入

c++ - 为什么不能将 const 对象放入 STL 容器中?

c++ - 访问/填充来自不同类的 vector ?

c++ - 库没有链接,即使存在于链接目标中

c++ - 从其他类文件 C++ 实现函数