打印到std::ostream的时间
printing time to std::ostream
我刚开始阅读C++教材,在解决本章末尾的一个编码问题时遇到了问题。问题是:
编写一个程序,要求用户输入小时值和分钟值。这个main()函数应该将这两个值传递给一个类型void函数,该函数显示以下示例运行中所示格式的两个值:
输入小时数:9
输入分钟数:28
时间:9:28
到目前为止,我的代码是:
#include <iostream>
using namespace std;
void time(int h, int m);
int main()
{
int hour, min;
cout << "enter the number of hours: ";
cin >> hour;
cout << "enter the number of minutes: ";
cin >> min;
string temp = time(hour, min);
cout << temp;
return 0;
}
void time(int h, int m)
{
string clock;
clock =
}
现在在time(n, m)
函数中该怎么办?
谢谢。
您可以包含<iomanip>
并设置字段宽度和填充,以便正确打印9:01
等时间。由于函数time
应该只打印时间,因此可以省略构建和返回std::string
。只需打印这些值:
void time(int hour, int min)
{
using namespace std;
cout << "Time: " << hour << ':' << setfill('0') << setw (2) << min << endl;
}
还要注意,在文件开头编写using namespace std;
被认为是一种糟糕的做法,因为它会导致一些用户定义的名称(类型、函数等)变得不明确。如果您想避免使用std::
来耗尽前缀,请在小范围内使用using namespace std;
,这样其他函数和其他文件就不会受到影响。
问题要求"一个类型void函数,以所示格式显示两个值",因此最简单、最正确(因为它与所问内容相匹配)的解决方案是:
void time(int h, int m)
{
cout << "Time: " << h << ":" << m << endl;
}
然后,main()函数只需要执行。。。
// ... prompt for values as before, then:
time(hour, min);
return 0;
}
然后返回。
First time()应该返回一个std::字符串。要格式化time()中的字符串,可以使用std::ostringstream(headersstream)。
例如:
std::string time(int hour, int minutes)
{
std::ostringstream oss;
oss << hour << ":" << minutes;
return oss.str();
}
编辑:当然,您也可以直接在time(..)函数中打印小时和分钟。或者,您可以将time(..)函数也传递给流参数,让time(.)在该流上打印出来。
您的代码主要假设time
是string
方法,问题陈述为void
。您的代码应该是:
#include <iostream>
using namespace std;
void time(int h, int m);
int main()
{
int hour, min;
cout << "enter the number of hours: ";
cin >> hour;
cout << "enter the number of minutes: ";
cin >> min;
// Now pass to your time method.
time(hour, min);
return 0;
}
void time(int h, int m)
{
cout << "Time: " << h << ':' << m << endl;
}
鲍勃是某人的叔叔。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 从持续时间构造std::chrono::system_clock::time_point
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- ostream过载时的缓冲区冲洗
- 使用简单类型列表实现的指数编译时间.为什么
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 在已经使用Git的情况下减少编译时间
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 从文本文件中读取时钟时间和事件时间并进行处理
- 具有未知值时的时间复杂性
- 如何减少花费的时间
- C++在变量给定的指定时间内关闭电脑
- rcpp函数中的清理时间很长
- 需要从 istream 和 ostream 派生 iostream
- C++:floor unix时间戳到UTC月份
- 如何在c++中录制具有精确帧时间戳的视频
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 打印到std::ostream的时间