идентификаторы srand (), rand () и time () не распознаны - PullRequest
0 голосов
/ 13 сентября 2018

Я только начинаю кодировать C ++ в VSCode и у меня возникают проблемы с использованием rand(time(0)); в любой из моих программ на C ++. Я работал над учебником для C ++, и это первая программа, которая нуждается в #include <cstdlib>. Я думаю, это означает, что это проблема с моей библиотекой, но я не знаю, как ее исправить. Любая помощь в том, что я сделал неправильно, была бы великолепна.

Всякий раз, когда я пытаюсь использовать srand();, rand() или time(), intellisense говорит identifier 'rand' is undefined или аналогичный для двух других вызовов функций.
Я включаю <cstdlib> и <ctime> и using namespace std; в мои программы.
Вот пример моего кода тестового примера, сохраненного как «rand test.cpp» в моей папке рабочей области.

#include <cstdlib>
#include <iostream>
#include <ctime>
using namespace std;

int main(){
    srand(time(0));
    int x = rand() % 10;
    cout<<x<<endl;
    return 0;
}

Когда я пытаюсь собрать тестовую программу с расширением C / C ++ Compile Run, терминал Compile & Run выдает что-то похожее на это:

PS C:\Users\Noah\Documents\Coding Resume> & g++ -st d=c++17 -Wall -Wextra 'c:\Users\Noah\Documents\Coding Resume\rand test.cpp' -o 'c:\Users\Noah\Documents\Coding Resume\rand test'
c:\Users\Noah\Documents\Coding Resume\rand test.cpp: In function 'int main()':
c:\Users\Noah\Documents\Coding Resume\rand test.cpp:7:11: error: too few arguments to function 'void sPS C:\Users\Noah\Documents\Coding Resume> & 'c:\Users\Noah\Documents\Coding Resume\rand test 
1`

мой c_cpp_properties.json выглядит так

{
"configurations": [
    {
        "name": "Win32",
        "includePath": [
            "${workspaceFolder}/**",
            "C:\\MinGW\\lib\\gcc\\mingw32\\6.3.0\\include\\c++",
            "C:/MinGW/lib/gcc/mingw32/6.3.0/include/c++/mingw32",
            "C:/MinGW/lib/gcc/mingw32/6.3.0/include/c++/tr1",
            "C:/MinGW/include",
            "C:/MinGW/lib/gcc/mingw32/6.3.0/include"
        ],
        "defines": [
            "_DEBUG",
            "UNICODE",
            "_UNICODE"
        ],
        "compilerPath": "C:\\MinGW\\bin\\gcc.exe",
        "cStandard": "c11",
        "cppStandard": "c++17",
        "intelliSenseMode": "clang-x64"
    }
],
"version": 4

}

для исходного кода, который я использовал, когда возникла эта проблема:

    //checking randomness on a die
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    int f, f1, f2, f3, f4, f5, f6;
    f = 0;
    f1 = 0;
    f2 = 0;
    f3 = 0;
    f4 = 0;
    f5 = 0;
    f6 = 0;

    for (int r = 1; r <= 6000; r++)
    {
        f = rand();
        f++;
        f = f % 6;
        switch (f)
        {
        case 1:
            f1++;
            break;
        case 2:
            f2++;
            break;
        case 3:
            f3++;
            break;
        case 4:
            f4++;
            break;
        case 5:
            f5++;
            break;
        case 6:
            f6++;
            break;
        default:
            cout << "something went wrong in the roller\n";
            break;
        }
        cout << "Face" << setw(13) << "Frequency" << endl
             << "1" << setw(13) << f1 << endl
             << "2" << setw(13) << f2 << endl
             << "3" << setw(13) << f3 << endl
             << "4" << setw(13) << f4 << endl
             << "5" << setw(13) << f5 << endl
             << "6" << setw(13) << f6 << endl
             << endl;

        return 0;
    }
}
//Expected output
/*
Face    Frequency
1       '~1000'
2       '~1000'
3       '~1000'
4       '~1000'
5       '~1000'
6       '~1000'
*/
//Actual output
/*
something went wrong in the roller
Face    Frequency
1            0
2            0
3            0
4            0
5            0
6            0
*/

Спасибо за помощь.

...