【发布时间】:2015-10-13 04:17:32
【问题描述】:
大家好,我不太了解在使用 getline() 时如何分隔用户输入。例如,用户输入他的出生日期,然后我从中提取月份、日期和年份。
例如)2010 年 1 月 2 日星期日。我有
int main()
{
string inputStream;
string date, month, day, year;
string i;
string j;
getline(cin, inputStream);
//cin >> date >> month >> day >> year;
i = inputStream.substr(0, inputStream.find(","));
j = inputStream.substr(inputStream.find(","), inputStream.find(","));
date = i;
month = j;
cout << month << " " << day << " was a " << date << " in" << year << endl;
return0;
}
对于 i 它工作正常并且会显示星期天,但对于 j 它似乎不想工作。有人可以告诉我我哪里出错了吗?我不确定如何在日期之后提取下一个值。
【问题讨论】:
-
对于
j,您的子字符串在同一点开始和结束,因此为空。查看您传递给substr的参数。