2

この関数では:

#include <iostream>
using namespace std;

extern const int M;

void outnum(int* &arr)
{
    for (int i=0; i<M; i++)
        cout << setw(4) << arr[i];

    cout << endl;
}

エラーが発生する

error: ‘setw’ was not declared in this scope
   cout << setw(4) << arr[i];
                 ^

iomanip を含めようとすると、コンパイル中に次のような行がたくさん表示されます。

/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 0 has invalid symbol index 11

それはUbuntuにとって特別なことですか?

メインファイル:

#include <iostream>
#include <locale>

extern const int M=5;
extern const int N=4;

int **makemas(int m, int n);
void output(int** &array, int m, int n);
int *number(int** &array, int n, int m);
void outnum(int* &arr);

int main()
{
int **a, **b;
int *anum, *bnum;

...

cout<<"  Number of minus elements in A:"<<endl;
outnum(anum);
cout<<"  Number of minus elements in B:"<<endl;
outnum(bnum);

return 0;
}
4

1 に答える 1

11

#include <iomanip>を使用するには、追加する必要がありますstd::setw()。その上でエラーが発生する場合は、Ubuntu の STL が台無しになっているか、他の何かがコンパイルに干渉している可能性があります。

于 2015-03-10T18:38:30.783 に答える