このようなものはどうですか:
std::array<std::array<char, 8>, 9> characters;
std::string line;
size_t pos = 0;
while (std::getline(in_str, line))
{
std::copy(std::begin(line), std::end(line),
std::begin(characters[pos++]);
}
これにより、入力ファイルから行が読み取られ、すべての文字が配列にコピーされます。
注:上記のコードにはエラー処理がなく、入力が実際に有効であるかどうかのチェックがありません。また、最も重要なことに、配列の範囲外に出ることのチェックもありません。予想よりも多くの入力行がある場合、または予想よりも 1 行あたりの文字数が多い場合、未定義の動作が発生します。
別の可能な解決策として、文字列 (もちろん、配列/ベクトルなどの配列インデックス構文を使用してアクセスできます) を格納することに満足している場合は、たとえば、次のようにすることができます。
std::array<std::string, 9> characters;
std::copy(std::istream_iterator<std::string>(in_str),
std::istream_iterator<std::string>(),
std::begin(characters));
最初のコード サンプルと同じ免責事項がここにも適用されます。