Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Lucas Akio Fujita Sato

C++ Minha função não imprime no arquivo .txt

Recommended Posts

Estou com um problema minha função cria o arquivo mas não imprime nada nele. segue abaixo o código:

void analisa_dados_brutos(double* s, long t) //sinal e seu tamanho
{
	FILE *file;
	file = fopen("sinal.txt","w+");
	double m = fabs(s[0]);
	for(long i=1; i<t; i++)
		if(fabs(s[i])>m)
			m = fabs(s[i]);
	for(long i=0; i<t; i++)
		s[i] /= m;
	double* y = new double[t+t-1]; //sinal autocorrelacionado
	for(long n=0; n<t+t-1; n++)
	{
		y[n] = 0;
		for(long k=0; k<t; k++)
			if((n-k>=0) && (n-k<t))
				y[n] += s[n-k]*s[t-k-1];
	} 
	
	for(long n=t; n<t+t-1; n++)
		fprintf(file,"%.5f \n", y[n]);
	fclose(file);
}
//-------------------------------------------------------------

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Lucas Akio Fujita Sato , Oi!

Sem documentação não tem como saber o tipo de saída correta, porém a rotina SIM imprimiu no arquivo.

 

~~ / ~~

Editado por AnsiC

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Lucas Akio Fujita Sato se você está programando na linguagem C++, use as funções e recursos da linguagem C++, deve-se evitar o máximo o uso de funções e recursos da linguagem C em um compilador C++.

void analisa_dados_brutos(double* s, long t) //sinal e seu tamanho
{
    ofstream file; // Biblioteca fstream, #include <fstream>

    file.open("sinal.txt");

    if (!file.is_open())
    {
        cout << "Falha ao criar o arquivo: sinal.txt!" << endl;
        return;
    }

    double m = fabs(s[0]);
    for(long i=1; i<t; i++)
        if(fabs(s[i])>m)
            m = fabs(s[i]);
    for(long i=0; i<t; i++)
        s[i] /= m;
    double* y = new double[t+t-1]; //sinal autocorrelacionado
    for(long n=0; n<t+t-1; n++)
    {
        y[n] = 0;
        for(long k=0; k<t; k++)
            if((n-k>=0) && (n-k<t))
                y[n] += s[n-k]*s[t-k-1];
    }

    for(long n=t; n<t+t-1; n++)
        file << setprecision(5) << y[n] << endl; // setprecision biblioteca: iomanip, #include <iomanip>

    file.close();
}

 

Resultado:

ltEGpEJ.png

 

Como o @AnsiC disse, sem a documentação não tem como saber se a saída esta correta, mas esta saindo.

Editado por cyer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×