从文本文件读取时钟时间和事件时间并进行处理 在我问任何事情之前,我应该提到我在C++中有一个不稳固的基础。如果我对任何事情都不清楚,请告诉我,我会尽力澄清

从文本文件读取时钟时间和事件时间并进行处理 在我问任何事情之前,我应该提到我在C++中有一个不稳固的基础。如果我对任何事情都不清楚,请告诉我,我会尽力澄清,c++,filestream,C++,Filestream,我在这里的编码问题是读取一系列24小时时间值(不包括秒),并将它们存储到结构的数组中。以整数格式读取小时和分钟,并将其存储到结构数组中,这是我不理解的。在文本文件中,每行的第一个数字是24小时时间,第二个数字是我需要修改时间的分钟数。刚开始读《泰晤士报》,我就僵住了 这是我目前掌握的代码 以下是更新后的代码,似乎有效: #include <iostream> #include <fstream> using namespace std; int main(){ in

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

这是我目前掌握的代码

以下是更新后的代码,似乎有效:

#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;
}
}
#包括
#包括
使用名称空间std;
int main(){
int size=7;
int i;
半结肠;
结构时间{
整小时;
整数分钟;
int M;
};
时间时钟[7];
河流充填;
infle.open(“times.txt”);
对于(i=0;i>时钟[i]。小时>>冒号>>时钟[i]。分钟>>时钟[i]。M;
}

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

您可以通过将冒号读入
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;
    }
}

请阅读、拍摄、阅读以及。请发布
times.txt
的内容。请不要发布文本图片,而是将文本作为文本发布。@NWayne请不要在评论中发布澄清,而是将您的问题放在评论中。谢谢您的回复。这确实表明冒号确实弄乱了结果。我现在看到了e阵列时钟[]的正确输出。
#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;
}
}
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