gpt4 book ai didi

c++ - 从文本文件中读取时钟时间和事件时间并处理

转载 作者:行者123 更新时间:2023-11-28 04:30:23 28 4
gpt4 key购买 nike

在我提出任何问题之前,我应该提到我的 C++ 基础不牢。如果我不清楚任何事情,请告诉我,我会尽力澄清。

我的编码问题是读取一系列 24 小时时间值(不包括秒),并将它们存储到结构数组中。以整数格式读取小时和分钟,并将其存储到结构数组中是我不理解的。在文本文件中,每一行的第一个数字是 24 小时制,第二个数字是我需要修改时间的分钟数。一开始我就被困在读时间的时候。

这是我目前的代码。 This is the result of the code.

#include <iostream>
#include <fstream>
using namespace std;

int main(){
int size = 7;
int i;

struct Times {
int T;
int M;
};
Times clock[7];

ifstream infile;
infile.open("times.txt");
for (i=0; i<size; i++){
infile>>clock[i].T>>clock[i].M;
}
for (i=0; i<size; i++){
cout<<clock[i].T << " "
<<clock[i].M <<endl;
}
}

这是文本文件的内容:

6:45   39   
12:00 73
0:00 4
23:59 1
22:45 70
11:59 1
14:15 95

这是更新后的代码,似乎可以工作:

#include <iostream>
#include <fstream>
using namespace std;



int main(){
int size = 7;
int i;
char colon;

struct Times {
int hour;
int minute;
int M;
};
Times clock[7];

ifstream infile;
infile.open("times.txt");
for (i=0; i<size; i++){
infile>>clock[i].hour>>colon>>clock[i].minute>>clock[i].M;
}
for (i=0; i<size; i++){
cout<<clock[i].hour << " "
<<colon << " "
<<clock[i].minute << " "
<<clock[i].M
<<endl;
}
}

最佳答案

请注意,文件的每一行包含三个整数值,而不是两个,并且冒号将停止读取整数值(整数的格式化输入将跳过前导空格甚至换行符,但不是“前导”冒号)。如果要读取冒号后的整数值,则需要跳过冒号。

您可以通过将冒号读入类型为 char 的变量(然后忽略它)来做到这一点。代码可能如下所示:

int main()
{
int hour,minute,x;
char colon;
stringstream s { "15:43 10\n16:48 20\n" };
while (s >> hour >> colon >> minute >> x) {
cout << "H:M=" << hour << ":" << minute << "; times=" << x << std::endl;
}
}

输出:

H:M=15:43; times=10
H:M=16:48; times=20

关于c++ - 从文本文件中读取时钟时间和事件时间并处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53116024/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com