Tôi đã mong đợi mã sau đây sẽ in các dấu thời gian khác nhau t1 và t2, tuy nhiên kết quả cho thấy t1 và t2 giống nhau. Tôi đã phạm sai lầm ở đâu?cách sử dụng đúng ctime() để in các dấu thời gian khác nhau
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
time_t t1 = time(NULL);
cout << "time now " << ctime(&t1) << endl;
time_t t2 = t1 + 10000.0;
cout << "time now " << ctime(&t1) << endl << " time later " << ctime(&t2) <<endl;
}
Kết quả:
time now Thu Apr 28 20:37:03 2016
time now Thu Apr 28 20:37:03 2016
time later Thu Apr 28 20:37:03 2016
PS: Dựa trên câu trả lời tuyệt vời dưới đây, vấn đề nên liên quan đến cả hai cách ctime() Tác phẩm chức năng và các nhà biên soạn nhằm đánh giá lập luận cout. Đối với trường hợp sau, vui lòng tham khảo http://stackoverflow.com/questions/12960241/explain-the-order-of-evalution-in-printf để biết ví dụ – daydayup