В этой функции:
#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;
}
Вам нужно добавить #include <iomanip>
, чтобы использовать std:setw()
. Если вы получаете ошибки на этом, то происходит что-то еще, либо Ubuntu STL испорчен, либо что-то еще мешает компиляции.
std::setw
, хорошей идеей будет найти ссылку на нее.