Ir ao conteúdo
  • Cadastre-se

HUGO_dev_ze

Membro Júnior
  • Posts

    10
  • Cadastrado em

  • Última visita

Reputação

6
  1. Eu tenho a funcao de remover acentos e transformar em maiúsculo abaixo: //bibliotecas usadas #include <stdio.h> #include <string.h> //tratar string void tratarString(char palavra[]) { unsigned int i, k, x = 0; char comAcentos[] = "ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç"; char semAcentos[] = "AAAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUuuuuCc"; //Removendo acentos for (k = 0; k < strlen(palavra); k++) { for (i = 0; i < strlen(comAcentos); i++) { if (palavra[k] == comAcentos[i]) { palavra[k] = semAcentos[i]; } } } //Transformando em maiúsculo while (palavra[x]) { palavra[x] = toupper(palavra[x]); x++; } } //Quando aplico ela no main, e passo a variavel já com o valor ela aceita int main(void) { char entrada[100] = "Hugo Jóse"; //scanf("%s",entrada); //receberInputUsuario(entrada,100); tratarString(entrada); printf("%s",entrada); return 0; } //saida desse algoritmo é : HUGO JOSE //Quando aplico em um fgets: // ele so le as letras que não tem acento, as que tem ele deixa da forma que esta int main(void) { char entrada[100];; setbuf(stdin,NULL); scanf("%s",entrada); tratarString(entrada); printf("%s",entrada); return 0; } //saida desse algoritmo se for escrito algo como o exemplo anterior sai "HUGO" Quando eu aplico fgets eu não consigo converter “çãõ” para “CAO” pois a saida que ele da e “çãõ” e não a que eu esperava que é “CAO”. como posso corrigir esse erro?
  2. eu estou usando a ide code bloks, ele e via terminal quando eu uso locale também não da certo ok , gostaria que o copilador recebece do usuario as letras
  3. gostaria de fazer assim: 1- o usuario digitasse algo tipo "caçador"; 2- função de tratar string pegar e substituiu "caçador" por "cacador"; 3-mostrar com a função toupper(), algo do tipo "CACADOR"
  4. Eu rodando o programa no windows. Estou usando code:bloks que tem como copilar c/c++ fgets(); eu esou tentando fazer com que recebe caractere do tipo "ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç", mas não estar reconhecendo, a função tratarString, esta reconhecendo so "AAAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUuuuuCc", minha função de tratar strings é para pegar uma frase por exemplo: "caçador", e trasformar em "CACADOR" Tirando os acentos ao ínvez disso ele deixa assim: "CAçADOR" eu queria saber como posso corrigir esse erro, pois quando faço : char entrada[100] = "ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç"; da certo e a saida fica como: AAAAAAAAAAAEEEEEEEEIIIIIIIIOOOOOOOOOOUUUUUUUCC que é o que eu esperava de fgets teria outra forma de eu receber a string do usuario para ele reconhecer acentos?
  5. @arfneto tem a função de receber o imput do usuario mas ela também da o mesmo erro
  6. Tenho a seguinte implementação : void receberInputUsuario(char palavra[], int tamanho) { setbuf(stdin, NULL); int i = 0; char c; c = getchar(); while ((c != '\n') && (i < tamanho)) { palavra[i++] = c; c = getchar(); } palavra[i] = '\0'; if (c != '\n') { c = getchar(); while ((c != '\n') && (c != EOF)) { c = getchar(); } } while ((i) < 1) { printf("O campo não pode ficar vazio!\n"); printf("Forneca ao menos um valor: "); receberInputUsuario(palavra, tamanho); } } void tratarString(char palavra[]) { unsigned int i, k, x = 0; char comAcentos[] = "ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç"; char semAcentos[] = "AAAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUuuuuCc"; //Removendo acentos for (k = 0; k < strlen(palavra); k++) { for (i = 0; i < strlen(comAcentos); i++) { if (palavra[k] == comAcentos[i]) { palavra[k] = semAcentos[i]; } } } //Transformando em maiúsculo while (palavra[x]) { palavra[x] = toupper(palavra[x]); x++; } } int main(void) { char entrada[100];// = "çaça caçador na çaçada contra ãma ópí"; receberInputUsuario(entrada,100); tratarString(entrada); printf("%s",entrada); return 0; } eu testei a função como no exemplo que está comentado, mas quando eu faço um fgets para receber o input do usuario da erro nas letras acentuadas. como posso estar corrigindo esse erro?
  7. ///main.cpp #include "ImportarDados.h" using namespace std; std::vector<std::string> split(const std::string& s, char c); int main() { string filename; ifstream fileC; cout << "Qual o nome do Cliente (EXEM:nome.txt)?"; cin >> filename; std::string file_path(filename); std::ifstream in_s(file_path); std::vector <std::vector<std::string>> content; if (in_s) { std::string line; std::vector <std::string> vec; while (getline(in_s, line)) { for (const std::string& str : split(line, ';')) vec.push_back(str); content.push_back(vec); vec.clear(); } vector<string> dadosSeparados = split(line, ';'); string tipo = dadosSeparados.at(0); string estrategia = dadosSeparados.at(1); string nome = dadosSeparados.at(2); string rating = dadosSeparados.at(3); string fgc = dadosSeparados.at(4); string valorInvestido = dadosSeparados.at(5); string taxa = dadosSeparados.at(6); string dataInvestimento = dadosSeparados.at(7); string dataResgate = dadosSeparados.at(8); cout << tipo << " - " << rating << " - " << dataResgate << "\n"; in_s.close(); } else { std::cout << "Não foi possível abrir : " + file_path << std::endl; } return 0; } ///ImportarDados.cpp //importa dados do usuario para que o programa pegue e faça os devidos calculos #include <iostream> #include <fstream> #include <string> #include <vector> #include <sstream> using namespace std; std::vector<std::string> split(const std::string& s, char c) { std::vector<std::string> splitted; std::string word; for (char ch : s) { if ((ch == c) && (!word.empty())) { splitted.push_back(word); word.clear(); } else word += ch; } if (!word.empty()) splitted.push_back(word); return splitted; } ///ImportarDados.h #include <iostream> #include <fstream> #include <string> #include <iostream> #include <vector> #include <sstream> using namespace std; std::vector<std::string> split(const std::string& s, char c); ///RendaVariavel.cpp #ifndef RENDA_VARIAVEL_H #define RENDA_VARIAVEL_H #include "Investimento.h" class RendaVariavel : public Investimento { public: RendaVariavel(); RendaVariavel(string nome); /* Retorna uma string que representa os dados do investimento. Usa o formato abaixo: <nome> | <rating> | <estratégia> | FGC: <sim | não> | Prazo: <X> anos [e <Y> meses] | [ <Y> dias] Veja nos exemplos abaixo como os valores devem substituir as strings no formato acima representadas por <>. O caractere pipe (|) entre os parênteses angulares < > significa ou, por exemplo: <sim | não> resulta em sim ou não. Na renda variável o prazo deve ser exibido em dias se o período de investimento for inferior a um ano (até 252 dias úteis), caso contrário, em anos. Os colchetes indicam uso opcional e que será usado no caso em que o período de investimento não representar um ano completo, por exemplo, 5 anos e 6 meses. Exemplos: Real FIA | BBB+ | Renda Variável | FGC: não | Prazo: 3 anos e 4 meses CS Saúde Digital | AA+ | Alternativos | FGC: não | Prazo: 5 anos Trend Bolsa Americana | A+ | Internacional | FGC: não | Prazo: 180 dias */ virtual string toSring(); /* Retorna o prazo em dias se o período de investimento for inferior a um ano (252 dias úteis), caso contrário, em anos. */ virtual short getPrazo(); /* Calcula o valor do Imposto de Renda (IR) sobre o rendimento obtido no investimento. Investimentos de renda variável possui uma única alíquota de IR de 15%, definida na classe Imposto como a constante TAXA_IR_15. */ virtual float calcularIR(); }; #endif // !RENDA_VARIAVEL_H minha duvida consiste em como posso pegar as variaveis que são fornecidas no arquivo.txt e poder usalas em outro arquivo como mostra no 'RendaVariavel.cpp'? como posso fazer isso, como não sei fazer isso não tem nenhum prototipo de função, so gostaria de saber como posso usar as variaveis de outtros arquivos
  8. @arfneto fiz algo melhor para tentar recomeçar ///main.cpp #include <iostream> #include <fstream> #include <string> #include <iostream> #include <vector> #include <sstream> #include "ImportarDados.h" using namespace std; std::vector<std::string> split(const std::string& s, char c); int main() { string filename; ifstream fileC; cout << "Qual o nome do Cliente (EXEM:nome.txt)?"; cin >> filename; std::string file_path(filename); std::ifstream in_s(file_path); std::vector <std::vector<std::string>> content; if (in_s) { std::string line; std::vector <std::string> vec; while (getline(in_s, line)) { for (const std::string& str : split(line, ';')) vec.push_back(str); content.push_back(vec); vec.clear(); } vector<string> dadosSeparados = split(line, ';'); string tipo = dadosSeparados.at(0); string estrategia = dadosSeparados.at(1); string nome = dadosSeparados.at(2); string rating = dadosSeparados.at(3); string fgc = dadosSeparados.at(4); string valorInvestido = dadosSeparados.at(5); string taxa = dadosSeparados.at(6); string dataInvestimento = dadosSeparados.at(7); string dataResgate = dadosSeparados.at(8); cout << tipo << " - " << rating << " - " << dataResgate << "\n"; in_s.close(); } else std::cout << "Não foi possível abrir : " + file_path << std::endl; return 0; } ///ImportarDados.cpp //importa dados do usuario para que o programa pegue e faça os devidos calculos #include <iostream> #include <fstream> #include <string> #include <vector> #include <sstream> using namespace std; std::vector<std::string> split(const std::string& s, char c) { std::vector<std::string> splitted; std::string word; for (char ch : s) { if ((ch == c) && (!word.empty())) { splitted.push_back(word); word.clear(); } else word += ch; } if (!word.empty()) splitted.push_back(word); return splitted; } ///ImportarDados.h #include <iostream> #include <fstream> #include <string> #include <iostream> #include <vector> #include <sstream> using namespace std; std::vector<std::string> split(const std::string& s, char c); Gostaria de saber como faço desse vetor que recebe a entrada do arquivo "RV;Multimercado;Western Asset FIM;A;não;4000;58%;15/01/2021;15/12/2021" pegar as Variaveis como por exemplo 58% e fazer dela uma variavel de uma equação e outro arquivo.cpp.
  9. @arfneto o exemplo de entrada seria o arquivo .txt? //arquivo.txt RV; Multimercado;Western Asset FIM;A;não;4000;58%;15/01/2021;15/12/2021 estou usando C++ com classe . preciso desses dados para fazer outras coisas dentro do programa e programa de investimentos que preciso desenvolver.
  10. main.cc // menu principal o qual aprensenta a funcionalidade de investimentos.cpp #include "ImportarDados.h" int main() { string Name_cliente; cout << "Digite o Arquivo do nome do Cliente (exemplo ClienteAlfa.txt) : "; cin.get(); getline(cin, Name_cliente); ofstream fout; fout.open(Name_cliente.c_str(), ios::binary); if (fout.is_open()) { ifstream file(Name_cliente); string str; while (getline(file, str)) { vector<string> dadosSeparados = split(str, ';'); string tipo = dadosSeparados.at(0); string estrategia = dadosSeparados.at(1); string nome = dadosSeparados.at(2); string rating = dadosSeparados.at(3); string fgc = dadosSeparados.at(4); string valorInvestido = dadosSeparados.at(5); string taxa = dadosSeparados.at(6); string dataInvestimento = dadosSeparados.at(7); string dataResgate = dadosSeparados.at(8); cout << tipo << " - " << rating << " - " << dataResgate << "\n"; } } return 0; } ImportarDados.h //importa dados do usuario para que o programa pegue e faça os devidos calculos #include <iostream> #include <fstream> #include <string> #include <iostream> #include <vector> #include <sstream> using namespace std; vector<string> split(string str, char delimitador) { vector<string> internal; stringstream ss(str); string tok; while (getline(ss, tok, delimitador)) { internal.push_back(tok); } return internal; } tenho esse codigo em produção mas não sei como colocar as variaveis que preciso acessar em outro local, por elas estarem em escopo local, não estou sabendo colocar em um escopo global

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!