私は、char配列C++動的配列
const int nameLength = 10;
int dataCount = 5;
// Initialize array of char array
char ** name;
name = new char*[dataCount];
for (int i = 0; i < dataCount; i++)
name[i] = new char[nameLength];
// Prompt for names
for (int i = 0; i < dataCount; i++) {
char userInput[nameLength];
cout << "Input data " << i << " :";
cin >> userInput;
name[i] = userInput;
}
cout << endl;
// Display data entered
for (int i = 0; i < dataCount; i++) {
cout << "Name" << i << " : " << name[i] << endl;
}
の動的配列を作成しようとしていますが、出力は間違っている:
Input data 0 :abcde
Input data 1 :fghij
Input data 2 :klmno
Input data 3 :pqrst
Input data 4 :uvwxy
Name0 : uvwxy
Name1 : uvwxy
Name2 : uvwxy
Name3 : uvwxy
Name4 : uvwxy
私はこれに入力部分を変更した場合、それは希望期待通りの仕事:
cin >> name[i];
しかし、私の場合、私は直接そのような変数にデータを入力することはできません。
コードに何が間違っているか説明できる人はいますか?私はどこでも検索しましたが、助けてくれないようです
その後、 'strcpy'を使用してください。またはより良いまだ 'std :: vector'。最後のコードスニペットを使用できないのはなぜですか? –
DeiDei
Cスタイルの文字配列よりも 'std :: string'を使用することを推奨します。動的に割り当てられる配列ではなく、 'std :: vector'を使用することを推奨します。 –
実際にはchar配列はクラスにあり、char配列を入力する関数が必要です – wthe22