1

次のコードを見てください

#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <sstream>


using namespace std;
bool isEven(int);


 int number;
 vector<int> inputNumbers;
 string line;

int main()
{    
    cout << "Please enter numbers: ";

    getline(std::cin,line);
    istringstream iss(line);

    while(iss>>number)
    {
        inputNumbers.push_back(number);
    }

    size_t vectorSize = inputNumbers.size();

    for(int i=0;i<vectorSize;i++)
    {
        cout << "Result for number " << i << "is: " << isEven(inputNumbers(i));
    }


}

bool isEven(int number)
{
    if(number%2 == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

このプログラムを実行すると、次のエラーが発生します

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/cygdrive/c/Users/yohan/Documents/NetBeansProjects/Excersice 6'
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/Cygwin-Windows/excersice_6.exe
make[2]: Entering directory `/cygdrive/c/Users/yohan/Documents/NetBeansProjects/Excersice 6'
mkdir -p build/Debug/Cygwin-Windows
rm -f build/Debug/Cygwin-Windows/EvenNumbers.o.d
g++    -c -g -MMD -MP -MF build/Debug/Cygwin-Windows/EvenNumbers.o.d -o build/Debug/Cygwin-Windows/EvenNumbers.o EvenNumbers.cpp
EvenNumbers.cpp: In function `int main()':
EvenNumbers.cpp:32: error: no match for call to `(std::vector<int, std::allocator<int> >) (int&)'
make[2]: *** [build/Debug/Cygwin-Windows/EvenNumbers.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
nbproject/Makefile-Debug.mk:79: recipe for target `build/Debug/Cygwin-Windows/EvenNumbers.o' failed
make[2]: Leaving directory `/cygdrive/c/Users/yohan/Documents/NetBeansProjects/Excersice 6'
nbproject/Makefile-Debug.mk:62: recipe for target `.build-conf' failed
make[1]: Leaving directory `/cygdrive/c/Users/yohan/Documents/NetBeansProjects/Excersice 6'
nbproject/Makefile-impl.mk:39: recipe for target `.build-impl' failed


BUILD FAILED (exit value 2, total time: 1s)

isEven() への関数呼び出しを削除すると、これは発生しません。なぜこうなった?助けてください!

4

2 に答える 2

3

に変更isEven(inputNumbers(i))isEven(inputNumbers[i])ます。

ithブラケット演算子を使用する入力番号にアクセスしようとしました。

于 2012-10-20T17:39:43.940 に答える
0

問題が解決しました。交換しました

入力番号[i]

入力番号(i)

于 2012-10-20T17:40:20.147 に答える