操纵输出c++; 我是C++新手,我正在尝试写一个简单的杂货店购物软件,输入的格式是这样的: Item Name someid expiryDate manufacturerId cost

操纵输出c++; 我是C++新手,我正在尝试写一个简单的杂货店购物软件,输入的格式是这样的: Item Name someid expiryDate manufacturerId cost,c++,C++,例如: 洗发水 8879 05 04 2015 1010 100.03 我想将其格式化为: 8879 2015年4月5日1000美元100.03美元等 我如何做到这一点 我的尝试: 我尝试使用子字符串,然后将输入分解,然后以所需格式输出,但我遇到的问题是,例如,价格可能是45.00左右,那么我的方法将失败 我怎样才能做到这一点 谢谢如果您正在从控制台输入读取,您可以使用cin和istringstream: #include <iostream> #include <string

例如:

洗发水 8879 05 04 2015 1010 100.03

我想将其格式化为: 8879 2015年4月5日1000美元100.03美元等

我如何做到这一点

我的尝试:

我尝试使用子字符串,然后将输入分解,然后以所需格式输出,但我遇到的问题是,例如,价格可能是45.00左右,那么我的方法将失败

我怎样才能做到这一点


谢谢

如果您正在从控制台输入读取,您可以使用cin和istringstream:

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main()
{
    int id;
    int mm,dd,yy;
    int manufacturerId;
    double price;
    string priceString;
    char character; // used to read '/' and other symbols
    cin >> id >> mm >> character >> dd >> character >> yy >> manufacturerId;
    cin >> priceString;

    istringstream stream( priceString );
    stream >> character >> price;

    return 0;
}
然后你可以用

date d;
cin >> d

阅读更加简洁且代码简单的日期。

检查
std::istringstream
以提取子部分。@Matt我看不出这里提到XML格式有任何关联。感谢您的解决方案,但我的问题没有什么不同。从某种意义上说,我的输入格式是:8879 05 04 2015 1010 100.03。我基本上希望获取这些输入,然后将它们存储在变量中,如月份、日期、年份、id、价格等。可能使用for循环。如何实现这一点?在代码中,我有一些变量(id、mm、dd、yy、price)来保存这些信息,并在读取输入流时填充它们。如果您运行代码并在控制台中粘贴8879 05 04 2015 1010$100.03,您将在这些变量中提取数据。
date d;
cin >> d