为什么getline()无法从文件中读取任何内容?

罗伊娜

我编写了一个接受txt文件作为输入并进行解析的代码,并将其放入2d数组myarray [] [2]中。输入文件结构如下所示:

aaa/bbb
bbb/ccc
ccc/ddd

它应该这样解析:

myarray[0][0] = "aaa"
myarray[0][1] = "bbb"
myarray[1][0] = "bbb"
myarray[1][1] = "ccc"

我这样做的代码:

void Parse_File(string file){
    ifstream inFile;
    inFile.open(file);
    if (inFile.is_open()){
        inFile.clear();
        int lines = count(istreambuf_iterator<char>(inFile), istreambuf_iterator<char>(), '\n');
        string myarray[lines][2];
        int mycount = 0;
        do{
            getline(inFile, input);
            myarray[mycount][0] = input.substr(0, input.find("/"));
            myarray[mycount][1] = input.substr(input.find("/") +1, input.length());
            mycount++;
        }while (input != "");
    }else{
        Fatal_Err("File Doesn't Exist");
    }
    inFile.close();
}

但是myarray在此功能之后没有任何内容。do-while语句不会循环。我不知道为什么。任何帮助表示赞赏。谢谢。

AzuxirenLeadGuy

您的文件有几个问题,但主要的问题是:您忘记将文件读取指针带回到文本文档的开头。count函数将所述指针指向末尾,因此您需要将其移回。

因此,您需要使用该seekg()函数将指针拖动到所需的位置。

看看下面的代码是否适合您

void Parse_File(string file)
{
    ifstream inFile;
    inFile.open(file);
    if (inFile.is_open())
    {
        inFile.clear();
        int lines = count(istreambuf_iterator<char>(inFile), istreambuf_iterator<char>(), '\n');
        //Pitfall : By counting the lines, you have reached the end of the file.
        inFile.seekg(0);// Pitfall solved: I have now taken the pointer back to the beginning of the file.
        ....
        ....//Rest of your code
    }
}

另外,您需要学习调试,以便更轻松地理解代码。我会推荐Visual Studio代码来调试c ++

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么getline()无法读取文本文件中的所有内容?

来自分类Dev

为什么fileToString无法正确读取文件内容?

来自分类Dev

为什么“猫”无法读取pdf文件的内容?

来自分类Dev

为什么clamdscan无法扫描任何内容?

来自分类Dev

为什么getline正在读取我的整个unicode文件

来自分类Dev

为什么getline会读取我的整个unicode文件

来自分类Dev

为什么无法读取目录的内容?

来自分类Dev

为什么Ruby无法从文件中读取所有字节

来自分类Dev

为什么git无法在Yosemite中读取我的证书文件?

来自分类Dev

为什么我的程序无法从文件中读取数据

来自分类Dev

为什么readImageLists无法读取txt文件中的图像列表?

来自分类Dev

使用while(getline())无法读取文件中的行

来自分类Dev

为什么无法读取整个文件?

来自分类Dev

为什么fgets()无法读取整个文件?

来自分类Dev

为什么我无法读取只读文件?

来自分类Dev

为什么QT无法读取文件

来自分类Dev

为什么在Rails 4上的ruby无法在head标签中重新加载任何内容

来自分类Dev

为什么零件文件在HIVE输出中没有任何内容

来自分类Dev

任何具有内部链接的内容都可以放在C ++的头文件中。为什么?

来自分类Dev

为什么这个sed构造不向空文件中插入任何内容?

来自分类Dev

为什么此Python代码无法打印任何内容

来自分类Dev

为什么我的python代码无法打印任何内容?

来自分类Dev

从html文件读取Unicode内容时,为什么QTextBrowser中的Unicode字体不能正确显示?

来自分类Dev

为什么文件读取不输出任何东西?

来自分类Dev

为什么打开文件比读取可变内容快?

来自分类Dev

为什么有些内置的shell`read`无法从`/ proc`中的文件中读取整行?

来自分类Dev

如果javascript中的函数不返回任何内容,为什么?

来自分类Dev

为什么我无法从Python调用的C扩展名中打开/读取txt文件?

来自分类Dev

为什么我似乎无法从 URL 流中读取整个压缩文件?

Related 相关文章

  1. 1

    为什么getline()无法读取文本文件中的所有内容?

  2. 2

    为什么fileToString无法正确读取文件内容?

  3. 3

    为什么“猫”无法读取pdf文件的内容?

  4. 4

    为什么clamdscan无法扫描任何内容?

  5. 5

    为什么getline正在读取我的整个unicode文件

  6. 6

    为什么getline会读取我的整个unicode文件

  7. 7

    为什么无法读取目录的内容?

  8. 8

    为什么Ruby无法从文件中读取所有字节

  9. 9

    为什么git无法在Yosemite中读取我的证书文件?

  10. 10

    为什么我的程序无法从文件中读取数据

  11. 11

    为什么readImageLists无法读取txt文件中的图像列表?

  12. 12

    使用while(getline())无法读取文件中的行

  13. 13

    为什么无法读取整个文件?

  14. 14

    为什么fgets()无法读取整个文件?

  15. 15

    为什么我无法读取只读文件?

  16. 16

    为什么QT无法读取文件

  17. 17

    为什么在Rails 4上的ruby无法在head标签中重新加载任何内容

  18. 18

    为什么零件文件在HIVE输出中没有任何内容

  19. 19

    任何具有内部链接的内容都可以放在C ++的头文件中。为什么?

  20. 20

    为什么这个sed构造不向空文件中插入任何内容?

  21. 21

    为什么此Python代码无法打印任何内容

  22. 22

    为什么我的python代码无法打印任何内容?

  23. 23

    从html文件读取Unicode内容时,为什么QTextBrowser中的Unicode字体不能正确显示?

  24. 24

    为什么文件读取不输出任何东西?

  25. 25

    为什么打开文件比读取可变内容快?

  26. 26

    为什么有些内置的shell`read`无法从`/ proc`中的文件中读取整行?

  27. 27

    如果javascript中的函数不返回任何内容,为什么?

  28. 28

    为什么我无法从Python调用的C扩展名中打开/读取txt文件?

  29. 29

    为什么我似乎无法从 URL 流中读取整个压缩文件?

热门标签

归档