C++で文字列の2次元配列を宣言するにはどうすればよいですか?また、この文字列をファイルに書き込む方法もあります。2次元配列の文字列を初期化する
答えて
あなたはこのように、文字列の多次元配列を宣言することができます。もちろん
std::string myArray[137][42];
、137と42 :-)のためにあなた自身の幅/高さの値を代入しない「1つの右の方法はありません
この配列をディスクに書き込むことができます。あなたは本質的に、ある種の適切なセパレータとエラーチェックロジックを使って、一度に1つの文字列をディスクに書き込む配列に対して繰り返し実行します。ここでは、1行に1つの文字列を書き出す1つの素朴な実装では、(文字列はそれらのいずれかの改行を持っていないと仮定して)です:
std::ofstream output("result.txt");
for (size_t i = 0; i < 137; ++i)
for (size_t j = 0; j < 42; ++j)
output << myArray[i][j] << std::endl;
・ホープ、このことができます!
最後に 'output.close()'を実行します。 –
必要ありません。ストリームオブジェクトが有効範囲外になると、デストラクタはファイルを閉じます。 – templatetypedef
typedef std::vector<std::string> StringVector;
typedef std::vector<StringVector> StringVector2D;
StringVector2D twoD;
for (StringVector2D::iterator outer = twoD.begin(); outer != twoD.end(); ++outer)
for (StringVector::iterator inner = outer->begin(); inner != outer->end(); ++inner)
std::cout << *inner << std::endl;
一緒に宣言と初期化:
std::string myarray[2][3] = {
{ "hello", "jack", "dawson" },
{ "hello", "hello", "hello" }
};
ファイルへの書き込みについては、templatetypedefの答えは、エラーチェックを行い、完了したら、出力ファイルストリームを閉じる必要がありますを除いて、ほとんど大丈夫です。
私はあなたがQString型を持っていると仮定します。これはstd :: stringとeven(char *)に対して正しく動作するはずです。
QString ** myTwoDimensionalArray;
myTwoDimensionalArray = new QString*[size_x];
for(int i=0; i<size_x; i++) myTwoDimensionalArray[i] = new QString[size_y];
これだけです。
myTwoDimensionalArray[x][y] = "Hello, World!";
#include<iostream>
#include<vector>
using namespace std;
main()
{
vector< vector<string> > m2m;
vector<string> A, B;
vector< vector<string> >::iterator inter_i;
vector<string>::iterator inter_j;
A.push_back("micro");
A.push_back("soft");
A.push_back("bilgates");
B.push_back("linux");
B.push_back("unix");
B.push_back("ken dennish");
m2m.push_back(A);
m2m.push_back(B);
cout<<endl<<" USing iterator : "<<endl;
for(inter_i=m2m.begin();inter_i!=m2m.end();inter_i++)
{
for(inter_j=(*inter_i).begin();inter_j!=(*inter_i).end();inter_j++)
{
cout<<*inter_j<<" ";
}
cout<<endl;
}
return 0;
}
- 1. 2次元文字列DataFrame配列をPythonで初期化する方法
- 2. 未知のサイズの2次元配列を初期化する
- 3. Verilog。多次元配列の初期化
- 4. C三次元配列の初期化
- 5. 2次元文字配列
- 6. OpenCV Matを2次元配列で初期化する
- 7. ランダム初期化多次元配列
- 8. 2次元配列をPythonで初期化しますか?
- 9. 文字列配列の初期化
- 10. C++文字列配列の初期化
- 11. Cで多次元文字配列を初期化する方法は?
- 12. 2次元配列のサイズ変更と初期化C#
- 13. 2次元配列内の文字列(文字*)を格納
- 14. ランダムに文字列を2次元配列に配置する
- 15. 文字配列の初期化:エンド
- 16. 構造体の2次元配列へのポインタを初期化する
- 17. Javaプログラムthats 2次元の配列の値を初期化する
- 18. VB.NETで多次元配列を初期化する方法
- 19. 3次元ルビ配列を初期化する方法
- 20. ルア/トーチで多次元配列を初期化する
- 21. 多次元配列をPythonで初期化する
- 22. 多次元配列を初期化するC++
- 23. 複数のテキストファイルから2次元配列を初期化するC#
- 24. C言語の宣言時に2次元配列を初期化する
- 25. 2次元配列の一部だけを初期化する方法は?
- 26. 2次元配列でn個の整数を初期化する
- 27. コンストラクタ内の2次元配列をC++で初期化する方法は?
- 28. アセンブリ内の文字列の配列を初期化する
- 29. 2次元配列の2倍の初期化に失敗しました
- 30. 文字列を2次元配列に分解する
文字列のどのような種類:今、あなたのような何かを書くことができますか?文字列リテラル? Cの文字列? 'std :: string'オブジェクト? 'CString'オブジェクト? 'QString'オブジェクト?何らかの種類のUnicode文字列?暗号化された文字列?他の種類の文字列ですか?どのような種類のファイルを書く必要がありますか?ファイル内で特定の方法でエンコードする必要がありますか?あなたは[良い入門C++の本](http://stackoverflow.com/questions/388242/the-definitive-c++book-guide-and-list)を持っていますか?もしそうなら、それを相談しましたか?そうでない場合、あなたは1つを取得する必要があります。 –