2017-09-22 17 views
-4

名前、年齢、給料(String、Int、Float)を入力するプロンプトを書く必要があります。それらのすべてをポインタ変数に格納する必要があります。そして、値とポインタアドレスを出力します。私はユーザー入力を格納する方法についてはわかりません。 >>のcinには、 'no operator ">>"というオペランドに一致するエラーがあります。どのようにエラーを発生させずにユーザー入力を適切に保存するには?ユーザー変数をポインタ変数に格納するにはどうすればよいですか?

#include "stdafx.h" 
#include <iostream> 

using namespace std; 

int main() 
{ 
int *Age = nullptr; 
string *Name = nullptr; 
float *Salary = nullptr; 
cout << "What is your name? \n"; 
cin >> *Name; 
cout << "Name- " << Name << " Pointer Address- " << &Name << endl; 
cout << "What is your age?\n"; 
cin >> Age; 
cout << "Age- " << Age << " Pointer Address- " << &Age << endl; 
cout << "What is your salary?\n"; 
cin >> Salary; 
cout << "Salary- " << Salary << " Pointer Address- " << &Salary << endl; 
return 0; 
} 
+3

これは、テキストブックまたはオンラインチュートリアルのポインタセクションの1ページに記載されています。 – John3136

+0

答えは簡単です:生のポインタをまったく使用しないでください。 – user0042

答えて

1
#include <iostream> 
using namespace std; 

int main() 
{ 
    int *Age = new int; 
    string *Name = new string; 
    float *Salary = new float; 
    cout << "What is your name? \n"; 
    cin >> *Name; 
    cout << "Name- " << *Name << " Pointer Address- " << Name << endl; 
    cout << "What is your age?\n"; 
    cin >> *Age; 
    cout << "Age- " << *Age << " Pointer Address- " << Age << endl; 
    cout << "What is your salary?\n"; 
    cin >> *Salary; 
    cout << "Salary- " << *Salary << " Pointer Address- " << Salary << endl; 
    delete Name; 
    delete Age; 
    delete Salary; 

    return 0; 
} 
  1. あなたが最初にこれらのポインタを初期化した値で読みたい、あなたは

    それらをプリントアウトしたときにあなたがそれらを参照解除したいnullptr

  2. に読み込むことができません

  3. ポインタを使用し終わったら削除してください

+0

これは質問に答えますが、このコードは決してポインタを '削除 'せず、したがってリークします。 (理想的には、これはスマートポインタで行われるでしょう) – Bitwize

+0

@Bitwize修正、指摘のおかげで –

関連する問題