識別子が見つかりませんでした

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
クロー

識別子が見つかりませんでした

#1

投稿記事 by クロー » 10年前

初歩的っぽい質問ですみません。プログラムの本文は


#include <iostream> // cout の定義
#include <stdlib.h> // random, srandom の定義
#include <time.h> // time の定義
using namespace std;

void main() {
srandom(time(0)); // 乱数の出発点を現在時刻にする
int x = random();
cout << x << "\n";
}


で、ビルドするとエラーメッセージが


1>------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------
1> main.cpp
1>x:\myprojects\test\main.cpp(7): error C3861: 'srandom': 識別子が見つかりませんでした
1>x:\myprojects\test\main.cpp(8): error C3861: 'random': 識別子が見つかりませんでした
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========


と出ます。
#include <stdlib.h>は出来ていると思うのに、なぜエラーになるのでしょうか。
srandomを使ったサンプルを探してコピペしても動きません。

関係あるかわかりませんが環境は、windows8.1にVisualStudio2010ExpressのC++をインストールした後、
とくに設定は変えていないと思います。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 識別子が見つかりませんでした

#2

投稿記事 by みけCAT » 10年前

srandom→srand
random→rand
の間違いではないでしょうか?
クロー さんが書きました:srandomを使ったサンプルを探してコピペしても動きません。
そのサンプルはどこにありますか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

クロー

Re: 識別子が見つかりませんでした

#3

投稿記事 by クロー » 10年前

返信が遅れてすみません。 このページに書いてあります。
http://ipl.sfc.keio.ac.jp/text/com-pro- ... c6_s5.html

自分もrandとsrandは知っていますが、random、srandomも存在しているように思います。
http://www.wakayama-u.ac.jp/~tokoi/lecture/seminar2/

Poco
記事: 161
登録日時: 13年前

Re: 識別子が見つかりませんでした

#4

投稿記事 by Poco » 10年前

srandom()、random()はPOSIXで定義されている関数で、Cの標準関数ではありません。
Windowsの開発環境ではMicrosoftが提供していないのではないでしょか。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 識別子が見つかりませんでした

#5

投稿記事 by みけCAT » 10年前

randomとsrandomは仕様にないため実装されていない、という可能性があります。
http://port70.net/~nsz/c/c89/c89-draft.html#4.10.2

randの精度が不満なら、xorshiftメルセンヌ・ツイスタの利用を検討してはいかがでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

クロー

Re: 識別子が見つかりませんでした

#6

投稿記事 by クロー » 10年前

なるほど・・・Cの標準関数では無かったんですね。
疑問は解決しました。ありがとうございました!

閉鎖

“C言語何でも質問掲示板” へ戻る