当前位置: 首页 > 知识库问答 >
问题:

如何阅读直到eof没有核心倾销?

司寇书
2023-03-14

我目前正在尝试从头开始做一个学习型Ai来熟悉它是如何工作的(项目代码链接在这里,我当前的问题是找到一种方法,一旦eof已经达到,就停止第20行的while循环。我尝试过使用fin.eof,当我使用它时得到的输出是“分段错误(核心转储)”。我如何让代码正常运行?

下面是我的代码:

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

struct Match{
    vector<int> sitVal;
    vector<int> opVal1;
    vector<int> opVal2;
    vector<int> opVal3;
};
//fills chosen Match with data from file
void conData(string file, Match& sits){
    ifstream fin;
    fin.open(file);
    int jump;
    fin >> jump;
    int i = 0;
    while(true){
        fin >> sits.sitVal[i];
        if (!fin)
            break;
        fin >> sits.opVal1[i];
        fin >> sits.opVal2[i];
        fin >> sits.opVal3[i];
        i++;
    }
    //following is for testing
    cout << sits.sitVal[0];
    cout << sits.opVal1[0];
    cout << sits.opVal2[0];
    cout << sits.opVal3[0];
}

int main(){
    Match sits;
    conData("Data.txt", sits);
}

共有1个答案

谷梁波
2023-03-14

在写入数据读取之前,必须添加数据读取到的元素。

    while(true){
        // read first data
        int sitValTemp;
        fin >> sitValTemp;
        if (!fin)
            break;

        // add elements
        sits.sitVal.push_back(sitValTemp);
        sits.opVal1.push_back(0);
        sits.opVal2.push_back(0);
        sits.opVal3.push_back(0);

        // read rest data
        fin >> sits.opVal1[i];
        fin >> sits.opVal2[i];
        fin >> sits.opVal3[i];
        i++;
    }
 类似资料:
  • 问题内容: 在C ++中,如果我想读取输入直到EOF,则可以按以下方式进行操作 然后,我可以将这段代码作为./a.out <input.txt来运行。此代码的java等价物是什么? 问题答案: 你可以这样做:

  • 本文向大家介绍Javascript核心读书有感之语言核心,包括了Javascript核心读书有感之语言核心的使用技巧和注意事项,需要的朋友参考一下 读此书之前,感谢淘宝技术团队对此javascript核心的翻译,感谢弗拉纳根写出此书。感谢你们无私的分享,仅以此笔记献给你们的辛勤付出。 一:javascript语言核心 本章之后,我们将主要关注javascript的基础知识。第二章我们讲解javas

  • 问题内容: 我需要循环直到碰到类似文件的对象的末尾,但是我没有找到“明显的方法”,这使我怀疑自己正在忽略某些东西,很明显。:-) 我有一个流(在这种情况下,它是一个StringIO对象,但我也对一般情况感到好奇)以“ ”格式存储未知数量的记录,例如: 现在,我可以想象的唯一清晰的方法就是使用(我认为是)初始化循环,这似乎有点不符合Python风格: 在类似C的语言中,我只是将其保留在的test子句

  • 问题内容: 阅读网页时,我经常收到“过早的EOF”异常。 以下是StackTrace 以下是getPage()方法 什么是持久性EOFException?为什么在这种特殊情况下会发生这种情况?如何避免呢? 其他一些信息:正在读取的页面大小约为20 KB,并且我正在程序中读取许多此类页面(大约20 000) 问题答案: 这可能是因为您正在逐行读取内容,而对于最后一行,文件可能缺少返回值以表示行结束。

  • ANTLR愉快地将所有的表达解析成成分,听者作用于相关的成分,生活是快乐的。下面是语法的一个代表性片段: 但现在,我需要扩展语法以合并两个新表达式,这两个表达式都以接受任何字符序列(包括Unicode)结束,直到。示例输入: 我很难在语法中表达对的所有输入的接受。以下变化导致痛苦: 如何才能做到这一点?期望的结果是,解析树侦听器将获得文本值,如。 我尝试将写入单独的和中,但遇到https://gi

  • 我有一个控制器动作方法来读取< code >请求。Body直接(而不是使用File)用于流式传输和其他目的。问题是没有模型绑定,因此Swagger不记录合同。例如: 加载 Swagger UI 时,无法上传文件等。 有没有办法用 ASP.NET 核心中的属性来支持这一点?