Problema para compilar código C++ no Geany e Terminal

Iniciado por dj_isaias, 01 de Dezembro de 2011, 11:26

tópico anterior - próximo tópico

dj_isaias

Pessoal formatei minha máquina que possuía Rwindows e agora estou com Ubuntu 11.10.
Instalei o Geany para continuar estudando C++ pq antes eu usava o Dev C++.
Quando abri os códigos em .cpp, que baixei do pen drive do meu professor, para analisar deparei com os seguintes erros:
Matriz.cpp: Na função 'void carrega_matriz()':
Matriz.cpp:9:27: erro: 'rand' was not declared in this scope
Matriz.cpp: Na função 'int main()':
Matriz.cpp:22:21: erro: 'srand' was not declared in this scope
Matriz.cpp:26:15: erro: 'system' was not declared in this scope
Compilação falhou.


O código usado foi este:

#include<iostream>
using namespace std;
const int l=10, c=10;
int m[l][c];
int i,j;
void carrega_matriz(){
     for (i=0;i<l;i++){
         for (j=0;j<c;j++){
             m[i][j]=rand()%900+100;//Para gerar números de 100 à 999
         }
     }
}
void imprime_matriz(){
     for (i=0;i<l;i++){
         for (j=0;j<c;j++){
             cout<<m[i][j]<<" ";
         }
         cout<<"\n\n";   
     } 
}
int main(){
    srand(time(NULL));
carrega_matriz();
    imprime_matriz();
    cout<<"\n";
system("pause");
}


O programa roda normalmente no Rwindows com o dev c++.
O que eu devo fazer para que os códigos feitos no Rwindows sejam executados no ubuntu?
Como compilar e executar um código c++ no Geany ou similares?
Obrigado pela atenção.

irtigor

Faltou #include<cstdlib>
Você também vai receber uma mensagem de "command not found" (comando não encontrado), quando executar, devido ao pause (penúltima linha). Duas alternativas:

#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
system("pause");
#endif

Ou simplesmente remove essa linha.