将ifstream文件和每一行读入数组

时间:2018-05-10 18:48:32

标签: c++

我希望任何人都能帮助我,或者至少了解我想要实现的目标。 我尝试在网上搜索这个,我没有找到答案,或者至少不明白别人做了什么。

所以,我试图从file.txt读取每一行到一个数组。 例如,我的file.txt包含:

3
labas 
ka tu
nu tai davai

(仅举例)

我想让每一行都进入我的

string sentenses[CMax]; 

(CMax设置为10000)

经过几个小时的搜索网络并自己修修补补,我最终得到了:

    ifstream KC;
    KC.open(langPicked.c_str());
      KC >> m;
      for (int o = 0; o < m; o++) {
        KC.getline(sentenses[o], 255); 
        if(KC) cout << sentenses[o] << endl;
      }
    KC.close();

但是,令人惊讶的是,它不起作用。

我正在努力实现的是,每一行(来自KC)都会被添加到&gt;&gt; sentenses [o]数组所以我可以cout我希望的行,例如,如果我键入:

  cout << sentenses[2] << endl;

它将输出2行:

  

ka tu

弹出

错误:

  

D:\ Lith \ Codeblocks \ uzd \ Skaiciuokle 2.0 \ main.cpp | 88 |错误:没有匹配函数来调用'std :: basic_ifstream :: getline(std :: __ cxx11 :: string&amp;,int)' |

注意: 我发布的代码可能会以某种方式形成或形成错误。我只是开始尝试自己学习c ++。如果您了解我想要做的事情,请随意回答您自己的适合我的情况的书面代码。提前谢谢

1 个答案:

答案 0 :(得分:0)

谢谢 Rustyx

解决方案是更改getline。

对于any1感兴趣。这段代码正在运行:

ifstream KC;
KC.open(langPicked.c_str());
  KC >> m;
  for (int o = 0; o < m; o++) {
    getline(KC, sentenses[o]);
  }
KC.close();

P.S。 idk如何附上rustx的回答&#34;解决了&#39;细分,所以我发表了自己的评论。遗憾