Ir ao conteúdo
  • Cadastre-se

Matheus Mendonça Andrade

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

2
  1. Olá, Estou tentando rodar um programa no linux (Ubuntu 12.04) com o compilador Geany utilizando um arquivo de dados que contém aproximadamente 500 mb de dados, no qual cada linha (11932267 linhas) possui número de estação, ano, mês, dia e quantidade de chuva. Porém ao executar o script, aparece um erro "Segmentation fault (core dumped)". Gostaria de saber se isso pode ser memória insuficiente no computador para rodar esses dados. O Script está a seguir: #include <iostream> #include <fstream> #include <string> using namespace std; int main () { //Definição de variáveis cout<<"Olá"<<endl<<"Iniciando programa"<<endl<<"Definindo variáveis"; int nl; nl = 11932267; //Inserir Número de Linhas do arquivo saidaNORDESTE.TXT = 11932267 int dia[nl], mes[nl], ano[nl], estacao[nl]; float chuva[nl]; //Abertura de arquivo cout<<" \n Abrindo arquivo..."; ifstream entrada; entrada.open("saidaNORDESTE.txt"); //Verificar o nome está correto int i; for (i=0; i<nl;i++){ entrada >> estacao >> ano >> mes >> dia >> chuva; } entrada.close(); //Criação de arquivo menor com datas utilizadas cout<<"\n Criando arquivo apenas com as datas a serem utilizadas"; int inicio, fim; inicio=1961; //Definir ano inicial fim=1979; //Definir ano final ofstream arquivo; arquivo.open("Arquivo.txt"); cout<<"\n Aguarde..."; int nlinhas=0; for (int i=0;i<nl;i++){ if (ano>=inicio && ano<=fim){ arquivo<<" "<<estacao<<" "<<chuva<<" "<<dia<<" "<<mes<<" "<<ano<<endl; cout<<"."; nlinhas++; } } nl=nlinhas; arquivo.close(); return 0; } Ao tentar executar, nem "Definindo variáveis" aparece, o computador mostra: Olá Iniciando programa Segmentation fault (core dumped) ------------------ (program exited with code: 139) Press return to continue Os dados estão da seguinte forma (trecho do arquivo): 835139 1998 1 1 0.300000012 835139 1998 1 2 0.100000001 835139 1998 1 3 0.00000000 835139 1998 1 4 0.00000000 835139 1998 1 5 0.00000000 835139 1998 1 6 0.00000000 835139 1998 1 7 7.90000010 835139 1998 1 8 0.00000000 Desculpem, não sei formatar como script para aparecer organizado.
  2. Que simples! Já tinha procurado em vários sites até mesmo em inglês e não tinha achado. C++ é bem mais simples que C. Muito obrigado mesmo proncipalmente a "Dont Panic".
  3. Boa tarde! Estou tentando fazer um programa no Geany em C++ que abra um arquivo em .txt que contem valores e guarde-os para que eu possa fazer cálculos com os mesmos. O arquivo possui 5 colunas: estação meteorológica (número), ano, mês, dia e precipitação (número). Eu vi um exemplo porém é em C. Gostaria de ajuda com isso em C++, pois não consigo entender em C pois é menos claro. Essa é uma pequena parte dos dados que possuem mais de 11 milhões de linhas. 835139 1998 1 1 0.300000012 835139 1998 1 2 0.100000001 835139 1998 1 3 0.00000000 835139 1998 1 4 0.00000000 835139 1998 1 5 0.00000000 835139 1998 1 6 0.00000000 835139 1998 1 7 7.90000010 A parte do algoritmo que eu mais estou em dúvida é essa, que foi escrita em C for(i=0; i<numero_linhas; i++) { fscanf(arquivo,"%d %d %d %d %lf\n", &t1, &ano, &mes, &dia, &t2); } Não consigo entender o por que do %d e o & antes das variáveis. Gostaria de saber também por que algumas variáveis possuem um * antes do nome. Minha dúvida principal é com relação ao fscanf, alguém saberia como eu escrevo essa função nesse caso? Obrigado

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...