0

テキストファイルから配列にテキストを入れたいのですが、配列内のテキストを個々の文字として持っています。どうすればいいですか?

現在、私は持っています

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

int main()
{
  string line;
  ifstream myfile ("maze.txt");
  if (myfile.is_open())
  {
    while ( myfile.good() )
    {
      getline (myfile,line);
      // --------------------------------------
      string s(line);
      istringstream iss(s);

    do
    {
        string sub;
        iss >> sub;
        cout << "Substring: " << sub << endl;
    } while (iss);
// ---------------------------------------------
    }
    myfile.close();
  }
  else cout << "Unable to open file"; 
  system ("pause");
  return 0;
}

getline は一度に1行ずつ取得すると思います。では、その行を個々の文字に分割し、それらの文字を配列に入れるにはどうすればよいでしょうか? 私は初めて C++ コースを受講しているので、初心者です。よろしくお願いします :p

4

2 に答える 2

8
std::ifstream file("hello.txt");
if (file) {
  std::vector<char> vec(std::istreambuf_iterator<char>(file),
                        (std::istreambuf_iterator<char>()));
} else {
  // ...
}

ループと push_back を使用した手動のアプローチに比べて非常に洗練されています。

于 2012-05-24T22:50:03.727 に答える
3
#include <vector>
#include <fstream>

int main() {
  std::vector< char > myvector;
  std::ifstream myfile("maze.txt");

  char c;

  while(myfile.get(c)) {
    myvector.push_back(c);
  }
}
于 2012-05-24T22:41:57.950 に答える