#include <iostream>
#include <cstdlib>
#include <string>
#include <time.h>
using namespace std;
struct phoneBook
{
string name;
string address;
string phoneNumber;
};
void insertName(phoneBook print[])
{
print[256];
for (int i = 0; i < 1; i++)
{
cin >> print[i].name;
cin >> print[i].address;
cin >> print[i].phoneNumber;
}
}
void printBook(phoneBook print[])
{
print[256];
for (int i = 0; i < 256; i++)
{
cout << print[i];
}
}
int main()
{
srand(time(NULL));
cout << "xd";
}
と右側をとる見つからない、私はエラーを取得します。エラーはbinary "<<": no operator found which takes a right-hand with
です。は依然として「<<」バイナリ得る:NOオペレータは上記のコードで<string>
文字列が表示されていますが、>>
オペレータの問題を解決するだけです。コードを見るとvoid printBook()
にはcout
のコマンドcout << print[i];
があります。これは、エラーが発生した場所で、int main(){cout << "xd";}
の機能ではありません。なぜエラーはintメインの<<
には影響しませんが、void phoneBook()
にのみ影響しますか?もし誰かがこれに対して素晴らしい解決策を持っていれば、私はそれを聞いて喜んでいるだろう。前もって感謝します。
(あなたが見るのコードがまだ終わっていない、と私はそれが醜態のように見えるとあれば、コード内の任意の他のエラーがある場合。)++(ごめんCに比較的新しいです。)
あなたは 'print [256];とは何と思いますか?そして、あなたは 'print [i]'は何だと思いますか? – user2357112
これは話題にはなりませんが、関連性があります:現代のC++では、Cスタイルの配列( 'int foo [42]; phoneBook bar [100];')を使用しないでください。 (しかし、多くの古い教科書やガイドはこれを教えています。)代わりに 'std :: vector'を使用してください。例えば、' std :: vector phoneBooks; ' –