2
#include <iostream>
using namespace std;

void main(){
    char name[20];
    gets(name);
    cout<<name<<endl;
}

グーグルで答えが見つかりません、関数gets()はCまたはC ++言語関数ですか?大学ではC++関数のみを使用する必要があるためです。

4

5 に答える 5

4

gets()C関数はc++関数のサブセットですが、いいえ、おそらくc++プロジェクトには必要ありません。

あなたは、getline()またはoperator>>ストリームを検討することができます。彼らは大学でそれについて何も教えてくれませんでしたか?

于 2011-11-29T13:46:54.943 に答える
1

getはac関数です

あなたはおそらくistream/ostream/fstreamなどを探しています。

例を参照してください:http ://www.cplusplus.com/reference/iostream/istream/read/

于 2011-11-29T13:47:40.570 に答える
1

取得はac関数です、取得のためのグーグルの最初のリンク。おそらくiostream、fstreamなどの関数を見る必要があります

于 2011-11-29T13:49:11.993 に答える
1

gets()は1960年代にさかのぼるC関数であり、境界チェックを行わず、危険であると見なされ、互換性のために長年保持されてきました。

有効で推奨されるC++のコードは次のようになります。

#include <iostream>
using namespace std;

int main(){
    // C style NULL terminated string NOT the same as a C++ string datatype 
    //char name[20];
    string name;// C++ string datatype, meant to use with C++ functions and features
    cin >> name;
    cout<<name<<endl;
    return 0;
}

文字列データ型/オブジェクトとして、C固有の機能とC++機能を混在させないようにする必要があります。両方を使用する方法はありますが、初心者としてはどちらか一方に固執する必要があります。

私の個人的な推奨事項は、最初にCを実行し、次にC++に移行することです。ほとんどのC++プログラマーは純粋なCが苦手で、C言語が最初に登場し、C ++の基盤環境として使用されましたが、どちらも想像できるほど多くの方法で時間とともに成長してきました。

したがって、C ++と同時にオブジェクト指向を研究しているのでない限り、C++コンパイラを使用してCでコードを記述するだけです。C ++は、Cと比較して非常に大きいです。そもそもC ++を使用する理由は、テンプレートとオブジェクト指向プログラミング機能です。

ピュアCは今でも多くのことに最適で、小さくてエレガントです。C++よりもCに習熟する方が簡単です。C ++は、開発者チームによって合意された機能のサブセットに固執することなく、管理しやすいものにまで成長しました。

于 2011-11-29T16:01:09.513 に答える
0

getのヘッダーはcstdlibとそのac関数であるため、この例はコンパイルされません。

于 2011-11-29T13:47:40.807 に答える