Ir para conteúdo
Fórum Script Brasil

PedroCunha

Membros
  • Total de itens

    282
  • Registro em

  • Última visita

Posts postados por PedroCunha

  1. Bom, duas coisas amigo:

    Primeiro -> Mude a declaração do objeto ofstream e sua abertura para fora do do-while loop. Caso contrário você estará abrindo o arquivo e criando um objeto toda vez que passa no loop;

    Segund -> Para abrir um arquivo de forma a não sobrepor o conteúdo já existente nele, temos que usar uma flag na sua abertura. Da seguinte maneira:

    ofstream makefile;
    makefile.open("C://Test.txt", ios::app);

    ios::app -> append, do inglês, adicionar, juntar. Ou seja, não deletar, :D.

    Aqui vai um link de um tópico do Fórum sobre esse assunto:

    IOS:APP

    Att.,

    Pedro

  2. Irei postar um código que, ao receber uma palavra ou frase, mostra se essa é um palíndromo (Palavra que pode ser lida de trás para frente com o mesmo resultado) ou não. Qualquer dúvida basta perguntar.

    #include <iostream>
    #include <cstring>
    #include <stdio.h>
    
    using namespace std;
    
    string Palavra = "";
    string Palavra_Teste = "";
    string TempPalavra = "";
    bool Se_Palindromo = false;
    char Usar_denovo;
    
    void Perguntar_a_Palavra(string&);
    void Checar_por_simbolos(string&, string&);
    bool Checar_se_Palindromo(string&, string);
    void Mostrar_se_e_Palindromo();
    void Perguntar_se_quer_usar_denovo(char);
    void Funcoes();
    
    void Perguntar_a_Palavra(string& Palavra)
    {
        Palavra == "";
        cin.sync();
        cout << "\nDigite uma palavra (Não use acentos por favor)" << endl;
        getline(cin, Palavra);
    }
    
    void Checar_por_simbolos(string& Palavra, string& TempPalavra)
    {
        TempPalavra = Palavra;
        for (unsigned int h = 0; h < Palavra.length(); h++)
        {
        for (unsigned int i = 0; i < Palavra.length(); i++)
        {
            if (Palavra[i] >= 48 || Palavra[i] == 49 || Palavra[i] == 50 || Palavra[i] == 51 || Palavra[i] == 52 || Palavra[i] == 53 || Palavra[i] == 54 ||
    Palavra[i] == 55 || Palavra[i] == 56 || Palavra[i] == 57 || (Palavra[i] > 64 && Palavra[i] < 91) || (Palavra[i] > 96 && Palavra[i] < 123) ||
    (Palavra[i] > 127 && Palavra[i] < 155) || (Palavra[i] > 159 && Palavra[i] < 166))
            {
            }
            else
            {
                Palavra.erase(i,1);
            }
        }
        }
        for (unsigned int j = 0; j < Palavra.length(); j++)
        {
            Palavra[j] = toupper(Palavra[j]);
        }
    }
    
    bool Checar_se_Palindromo(string& Palavra, string Palavra_Teste)
    {
         int i, j;
        int Palavra_Size = Palavra.length();
        if (Palavra != "")
        {
            for (i = Palavra_Size - 1, j = 0; i >= 0;i-- , j++)
        {
            Palavra_Teste[j] = Palavra[i];
        }
    
            Palavra_Teste[Palavra_Size] = '';
    
    
    
    
    
        if (strcmp(Palavra_Teste.c_str(), Palavra.c_str()) == 0)
        {
        Se_Palindromo = true;
        }
        else
        Se_Palindromo = false;
    
        Palavra = TempPalavra;
    
        }
    
        else
        Se_Palindromo = false;
    
        return Se_Palindromo;
    }
    
    void Mostrar_se_e_Palindromo()
    {
            cout << "\n";
    
        cout << "Frase: " << Palavra << endl;
        cout << "Palíndromo:";
        if (Se_Palindromo == false)
            {
              cout <<  " Não" << endl << endl;
            }
        else
        {
              cout << " Sim" << endl << endl;
        }
    }
    
    void Funcoes()
    {
        Perguntar_a_Palavra(Palavra);
        Checar_por_simbolos(Palavra, TempPalavra);
        Checar_se_Palindromo(Palavra, Palavra_Teste);
        Mostrar_se_e_Palindromo();
        Perguntar_se_quer_usar_denovo(Usar_denovo);
    }
    
    void Perguntar_se_quer_usar_denovo(char Usar_denovo)
    {
        cout << "\nDeseja usar o programa denovo? (S / N)" << endl;
        if (! (cin >> Usar_denovo))
        {
            cin.clear();
            cin.sync();
            cout << "Opção inválida." << endl << endl;
            Perguntar_se_quer_usar_denovo(Usar_denovo);
        }
        switch (Usar_denovo)
        {
        case 'S': {Funcoes(); break;}
        case 's': {Funcoes(); break;}
        case 'N': {cout << "\nAdeus" << endl; break;}
        case 'n': {cout << "\nAdeus" << endl; break;}
        default:{ cout << "Opção inválida. Tente novamente." << endl;
        cin.sync();
        Perguntar_se_quer_usar_denovo(Usar_denovo);
        break;
        }
        }
    
    }
    int main()
    {
        setlocale(LC_ALL, "Portuguese");
    
        Funcoes();
    
    
        cin.get();
        return 0;
    }

    Att.,

    Pedro

  3. Você está tentando usar o fstream , uma função da linguagem C++, com comandos da linguagem C. Para que seu código funcione, faça dessa forma:

    #include <iostream>
    #include <fstream>
    #include <stdio.h>
    #include <stdlib.h>
    using namespace std;
    int a;
    int main(){
    
    printf("Digite um numero: ");
    scanf("%d", &a);
    system("cls");
    
    ofstream makefile;
    makefile.open("C://teste.txt");
    makefile << "Numero digitado: " << a;
    makefile.close();
    }

    E não se esqueça que main é uma função que retorna uma integer, ou seja, tem que ser declarada com int main()

    Att.,

    Pedro

  4. Aqui está o programa, totalmente funcional, checando se o que foi digitado está certo e com um loop no final. Qualquer dúvida é só perguntar.

    /*
    ******************************************
    * Software: (Calculadora Básica)         *
    * Data: 29/12/2012                       *
    * Autor: Pedro Vinicius Siqueira         *
    * E-mail: pedro.v.siqueira@gmail.com     *
    * Versão: 0.1                            *
    ******************************************
    
    */
    #include <iostream>
    using namespace std;
    double soma(double x,double y){
        cout<<"\nVamos fazer a soma" << endl;
        cout<<"\nO valor da soma = ";
        return (x+y);
    }
    double sub(double x,double y){
        cout<<"\nVamos fazer a subtracao"<< endl;
        cout<<"\nO valor da subtracao = ";
        return (x-y);
    }
    double mult(double x,double y){
        cout<<"\nVamos fazer a multiplicacao"<< endl;
        cout<<"\nO valor da multiplicacao = ";
        return (x*y);
    }
    double div(double x,double y){
        cout<<"\nVamos fazer a divisao"<< endl;
        cout<<"\nO valor da divisao = ";
        return (x/y);
    }
    int main(){
    
        setlocale(LC_ALL, "Portuguese");
    
        int operacao = 0;
        double a,b = 0;
        bool done=false;
        char Variavel_Controle = '';
        while (done==false){
        cout<<"\nCalculadora basica em c++. Digite dois numeros e pressione enter."<< endl;
        if (! (cin >> a >> b))
        {
            cin.clear();
            cin.sync();
            cout << "Invalido. Digite um numero." << endl;
            cin >> a >> b;
        }
        cout<<"\nDigite o tipo de operacao. \n 1. Soma\n 2. Subtracao\n 3. Multiplicacao\n 4. Divisao" <<endl;
        if (! (cin >> operacao))
        {
           cin.clear();
           cin.sync();
          cout << "\nInvalido. Digite um numero." << endl;
          cin >> operacao;
        }
        switch(operacao){
        case 1:
            cout<<soma(a,b);
            break;
        case 2:
            cout<<sub(a,b);
            break;
        case 3:
            cout<<mult(a,b);
            break;
        case 4:
            cout<<div(a,b);
            break;
        default:
            cout<<"\nNumero invalido!";
            cin >> operacao;
            break;
        }
          cout << "\nVocê deseja usar o programa denovo? (S/N)" << endl;
          cin >> Variavel_Controle;
          if (Variavel_Controle == 'S' || Variavel_Controle == 's')
          {
    
          }
          else
          {
              cout << "\nAdeus!" << endl;
              done = true;
              cin.get();
          }
        }
    return 0;
    }

    Att.,

    Pedro

  5. Olá gente. Tenho uma dúvida quanto a esse código aqui:

    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    
    float Numero,Maior_Numero;
    int i;
    
    void Determinar_Maior_Numero(float, float, int);
    
    void Determinar_Maior_Numero(float Numero, float Maior_Numero, int i)
    {
        Maior_Numero = 0;
    
        for (i = 0; i < 10; i++)
        {
            printf("Digite um numero\n");
            scanf("%f", &Numero);
            if (Numero > Maior_Numero)
            Maior_Numero = Numero;
        }
    
    
    }
    
    int main()
    {
    
        Determinar_Maior_Numero(Numero,Maior_Numero,i);
    
        printf("\n\nO maior numero digitado foi: %.5f\n\n", Maior_Numero);
    
        printf("Pressione qualquer tecla para sair");
        getch();
        return 0;
    }

    Se eu tentar usar o printf com Maior_Numero na função main, ou seja, fora de onde ele foi alterado, ele não "carrega" nenhum valor, mostrando zero na tela. Em C++, para que eu conseguisse mostrar o valor da variável Maior_Numero eu passaria ele como referência nos parâmetros da função, no entanto, em C, passar por referência não é possível.

    Gostaria de saber se existe alguma alternativa.

    Att.,

    Pedro

    ²Também gostaria de saber se é possível 'chamar' uma função em main sem declarar as variáveis que compõem os seus parâmetros de forma global.

  6. Claro. Aqui vai:

    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    
    float Numero,Maior_Numero;
    int i;
    
    void Determinar_Maior_Numero(float, float, int);
    
    void Determinar_Maior_Numero(float Numero, float Maior_Numero, int i)
    {
        Maior_Numero = 0;
    
        for (i = 0; i < 10; i++)
        {
            printf("Digite um numero\n");
            scanf("%f", &Numero);
            if (Numero > Maior_Numero)
            Maior_Numero = Numero;
        }
    
        printf("\n\nO maior numero digitado foi: %.5f\n\n", Maior_Numero);
    }
    
    int main()
    {
    
        Determinar_Maior_Numero(Numero,Maior_Numero,i);
    
        printf("Pressione qualquer tecla para sair");
        getch();
        return 0;
    }

    Estude bem o código e aproveite, pois não é sempre que fazemos o código para você. Qualquer dúvida é só perguntar.

    Att.,

    Pedro

  7. Isso que é eu disse e também disse para trocar pelo cin.get() porque além deste não ser dependente de sistema operacional, ele faz a mesma coisa que o system("PAUSE") sem os gastos excessivos de memória e os problemas de segurança, :D.

    Att.,

    Pedro

×
×
  • Criar Novo...