非常初学者 - 在C ++行中读取固定数量的字符

时间:2013-04-09 00:55:23

标签: c++

这是一个非常基本的问题,因为我刚刚开始使用C ++。我要从文件(文本)中读取一行的20个字符。例如:

Wayne, Bruce        0000000

我想将“Wayne,Bruce”及其后面的空格保存为字符串。我已经尝试了一段时间,我无法弄清楚如何解决这个问题。因此,如果有人可以帮助我,我会问答案很简单。我试着谷歌搜索这个并认为我找到了一些答案,但大多数都是我的头脑。谢谢。

2 个答案:

答案 0 :(得分:1)

#include <algorithm>
#include <fstream>
#include <string>

int main()
{
    std::string str;
    std::ifstream file("test.txt");

    std::copy_n(
        std::istreambuf_iterator<char>(file),
        20,
        std::back_inserter(str)
    );
}

请注意,如果有问题的文件少于20个字符,则这不安全。

答案 1 :(得分:0)

如果您想从文件中读取20个字符的块,那么您可以尝试这样的事情,

void readFromFile(char *input)  //Parameter is your filename
{
  ifstream file_input;
  file_input.open(input, ios::in);
  vector<string> vec;         // Optional in case you want to store these
   while (file_input.good()) {
    char arr[21] = "";
    file_input.read (arr,20);
    vec.push_back(arr);        //if you want to store these chunks into vector
 }
 file_input.close();
}