- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
是的,这是为了作业。我不介意努力得到答案,我不想要确切的答案! :) 这是我的第一堂 C++ 课。我是在具备 VBA、MySql、CSS 和 HTML 的先验知识的情况下进入这门类(class)的。
我们需要编写一个具有多种不同功能的程序。其中之一需要接收以 "MM/DD/YYYY"
格式输入的日期。虽然这本身很容易;作为初学者,我会把
cin >> month >> day >> year;
并在向用户显示时在后面插入“/”。
但是,我相信我们的教授希望用户通过准确输入“12/5/2013”或任何其他日期来输入日期。
按照他的指示:
The
'/'
can be read by cin. So read the'/'
character and ignore it. Set day to equal the 3rd input, month to the first input, and year to the fifth input. Discard the 2nd and 4th input.
^ 这就是我偏离路线的地方。
到目前为止,当用户在每次输入后按回车键时,我们只遇到过 cin。所以我不知道他是否希望用户在 12 之后按回车键,然后在“/”之后再次按 Enter,然后在 5 之后,在“/”之后,最后在“2013”之后(使用之前的 12/5/2013 示例) 2013 年 12 月 5 日)。
有没有更有经验的人对我应该做什么有任何可能的见解?我们只被教导如何使用“cin”来接收输入(所以我们不知道其他接收输入的方法),我不知道如何在输入字符串时“忽略字符”,例如 '12/5/2013' 正好。
如有任何帮助,我将不胜感激!
编辑:我在这里寻找答案,但我遇到的所有答案都超出了我们所教的范围,因此不允许出现在作业中。虽然我可以很容易地理解更高级编码的逻辑,但我对自己无法轻松解决这些更简单的问题感到沮丧。因此我在这里发帖。我花了几个小时浏览我们的教科书,寻找可能的答案或线索来“忽略”输入字符串中的字符,但结果很短。
最佳答案
其实很简单!问题是:您可以输入不止一件事。这意味着,如果你写 int d; std::cin >> d;
,输入30/06/2014
完全没问题。 d
的值变为 30
并且输入的其余部分尚未读取。如果您编写下一个 std::cin
语句,可用的内容是 /06/2014
。
然后需要消费/
,读取月份,再次消费,最后读取年份。
#include <iostream>
int main()
{
int d;
int m;
int y;
std::cin >> d; // read the day
if ( std::cin.get() != '/' ) // make sure there is a slash between DD and MM
{
std::cout << "expected /\n";
return 1;
}
std::cin >> m; // read the month
if ( std::cin.get() != '/' ) // make sure there is a slash between MM and YYYY
{
std::cout << "expected /\n";
return 1;
}
std::cin >> y; // read the year
std::cout << "input date: " << d << "/" << m << "/" << y << "\n";
}
如果你能保证输入的格式是正确的,直接写就OK了
std::cin >> d;
std::cin.get();
std::cin >> m;
std::cin.get();
std::cin >> y;
或者,如果您不习惯使用 std::cin.get()
,它与读取字符一样好:
char slash_dummy;
int d;
int m;
int y;
std::cin >> d >> slash_dummy >> m >> slash_dummy >> y;
下面是一些演示:
关于c++ - 使用 CIN 提示并接收日期 "MM/DD/YYYY",忽略 "/"字符? (在 C++ 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24483655/
我需要使用正则表达式验证格式为 dd/mm/yyyy 的日期字符串。 此正则表达式验证 dd/mm/yyyy,但不验证 31/02/4500 等无效日期: ^(0?[1-9]|[12][0-9]|3[
我需要检查给定字符串的日期。我得到的字符串不规则,我不想使用 Dateformat 或类似的东西。我试图避免出现多个异常。我需要 dd.MM.yyyy 和 MM.yyyy 和 yyyy 的正则表达式。
我想使用在这里找到的 jQuery 屏蔽输入插件 http://digitalbush.com/projects/masked-input-plugin/格式化日期。 我正在从数据库中提取数据以在页面
我正在尝试以更有效的方式根据当前日期找出当前财政年度(FY - 3 月至 4 月)。这是我到目前为止写的内容 public static void main(String[] args) {
我已经搜索了该网站,但没有找到接近我需要的答案。基本上我的日期正确显示为“2013-05-09”,但我想要的是“2013 年 3 月 19 日”或使其更好“3 月 19 日, 2013 年”。 请向我
我需要使用 C# 更改日期字符串的格式 来自:“06/16/2010”或“16/06/2010” 至:“2010-06-16” 你能帮我实现这个吗 谢谢 最佳答案 如果您已经将它作为 DateTime
我正在以 MMM-yyyy 格式从 View 中提交日期值,即“Apr-2019”作为字符串。我需要将字符串值转换为 .Net 支持的日期格式,如 dd-MM-yyyy 或 yyyy-MM-dd。这里
我有一个包含以下数据的平面文件 2/12/2016 2/3/2017 12/23/2017 04/23/2017 第一个是 M/dd/yyyy,第二个是 M/d/yyyy,其余日期格式为 MM/dd/
好吧,我已经和这个战斗了足够长的时间。我有一个正则表达式 ^(1[0-2]|0[1-9]|\d)\/(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d) 这将匹配 8/15、08/15
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Extending JavaScript's Date.parse to allow for DD/MM/Y
我有 json 对象列表,其中一个字段是日期。问题是日期在 json 中以不同的方式写入。 大多数看起来像: "publishedDate": "2005-01-28" "publishedDat
这个问题已经有答案了: Generate & parse "Year-Month" values in text from Java (1 个回答) 已关闭 7 年前。 我有一个变量: YearMon
我对日期格式有一个奇怪的问题。就像,我正在使用 jquery 日期选择器,它设置为格式 dd/mm/yy。因此,当我在该字段中填写 01/09/2015 时,它应该意味着日期是 2015 年 9 月
我有以下日期, 24/04/2019 13/05/2019 12/04/2019 我想删除年份并将这些日期转换为以下格式, 24/04 13/05 12/04 这不是仅用于输出我想在该日期执行加法或申
“YYYY”和“yyyy”之间的确切区别是什么。我读过 this link ,它指出 A common mistake is to use YYYY. yyyy specifies the calen
我有一个日期列,其中日期格式为 2010-04-14 在 SQL Server 中。有没有办法将日期格式检索为 14/04/2010 在选择语句中? 最佳答案 试试这个: SELECT CONVERT
我有这个正则表达式:(\d{4})\/(\d{2,4})\/?(\w{2})?这似乎工作正常,但我想避免以下情况,例如:我有一个字符串“2020/2000/WEEEE”并且它匹配它。 它匹配的其他错误
这是用户输入日期的代码:(它必须是我的日期选择器,但表单必须将日期字段作为文本提交 - 不要问) 提交时,我在 javascript 中调用验证逻辑。我附上了当我尝试输入 01/01/2001 作为用
我正在尝试以 YYYY-YY 格式提取会计日期字符串的最后一年 (YY)。例如,这个“1999-00”的最后一年是 2000 年。 当前代码似乎涵盖了除此之外的大多数情况。 import pandas
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: Conversion of Date 我从对话框中获取的日期为:5-1-2012 - 作为字符串。 我需要将其转换为
我是一名优秀的程序员,十分优秀!