Ir para conteúdo
Fórum Script Brasil

PedroCunha

Membros
  • Total de itens

    282
  • Registro em

  • Última visita

Tudo que PedroCunha postou

  1. Aqui está um exemplo de como fazer isso: #include <iostream> using namespace std; int main () { int matriz1 [5] = {1,2,3,4,5}; int matriz2[5] = {6,7,8,9,10}; int matriz3[10] = {}; cout << "Matriz 1:\n\n" << endl; for (int i = 0; i < 5; i++) { cout << matriz1[i] << endl; } cout << "Matriz 2:" << endl; cout << "\n\n"; for (int j=0; j < 5; j++) { cout << matriz2[j] << endl; } for (int l = 0; l < 5; l++) { matriz3[l] = matriz1[l]; matriz3[l+5] = matriz2[l]; } cout << "\n\n"; cout << "Matriz 3:" << endl; cout << "\n\n"; for (int k = 0; k < 10; k++) { cout << matriz3[k] << endl; } } Basta adaptá-lo às suas necessidades, :D. Att., Pedro.
  2. PedroCunha

    Duvida sobre vetores

    O programa funciona corretamente nos dois casos, o que acontece é o seguinte: em um vetor, o primeiro elemento é o vetor[0] e não o vetor[1] por isso quando rodamos, por exemplo: 0,1,2,3,4,5,6,7,8,9 ele altera o valor de 0, 2, 4, 6, 8. Entendeu? Qualquer dúvida é só perguntar, :D Att., Pedro
  3. PedroCunha

    função em c

    Bom, eu penso que você deva ter mais informação do que isso e também deve ter a função que ele está falando no exercício. O que acho que você tem que fazer é mudar os parâmetros da função para que ela retorne uma nova string com o resultado.
  4. Acho que basta ir trocando as posições do vetor, algo assim mais ou menos: for (i = 0;i < 5;i++) { vetor[i] = vetor[i-1]; } Não tenho certeza. Att., Pedro.
  5. PedroCunha

    Duvida sobre vetores

    Bom, duas coisas. Primeiro: Para fazer a troca usando a posição, você tem fazer a comparação com o "i", que é o índice do vetor e não com o vetor. Da seguinte forma: if ( i % 2 == 0) { v2[i] = v1[i] * (-1) } Segundo: Quanto ao seu código fiz algumas modificações para que funcionasse corretamente, explicarei elas com comentários: #include <iostream> using namespace std; int main() // main é normalmente usada como int main. Se você usa somente main() está errado, pois você não está dando um tipo para a função. { int v1[10],v2[10],i; //aqui tinha o seguinte código: i == 0, que era desnecessário e errado, uma vez que para inicializar variáveis usa-se somente um = e não dois e também porque você já // inicializa ela no loop. for(i=0;i<10;i++) { cout<<"Digite um valor inteiro:"; cin>>v1[i]; if(i%2==0) { v2[i]=v1[i]*(-1); } else { v2[i]=v1[i]; } // nessa linha havia o seguinte código: i= i+1, o que está errado, pois você já incrementa o i em 1 cada vez que roda o loop. Então, com esse código, o loop so rodaria 5 //vezes. } for(i=0;i<10;i++) { cout<<endl<<v2[i]; // nessa linha havia o seguinte código: i= i+1, o que está errado, pois você já incrementa o i em 1 cada vez que roda o loop. Então, com esse código, o loop so rodaria 5 //vezes. } cin.get(); // tirei o system("pause") pois é uma função dependente do Windows e troquei ela por cin.get(), uma função nativa do C++. return 0; // como main é uma função int (integer) tem que retornar algum valor. } Att., Pedro. OBS.: Não se esqueça de usar as codetags. ("code" seu código "/code") (substitua as aspas por colchetes)
  6. Não existe nenhum comando para checar se a porta está sendo usada, mandando voltagem, algo assim?
  7. Respostas: 1 - 5; 2 - 3; 3 - Não tenho certeza, mas acho que é 4; 4 - 5; 5 - 3; Att., Pedro
  8. Não sei como funciona a criação de códigos para comunicação entre portas seriais mas a lógica seria basicamente usar uma condicional do tipo if ( !LuzAcesa) { LuzAcesa = 0; } Att., Pedro.
  9. PedroCunha

    rpg(iniciante)ajudem

    Você pode criar funções para eliminar a necessidade de usar o goto.
  10. Para atualizar arquivos binários você precisa gravar de forma diferente, utilizando parâmetros como sizeof. Vou te indicar um link que ensina como fazer isso: C++
  11. PedroCunha

    Ajuda C++ Iniciantes

    Olá, para fazer isso basta usar um for loop da seguinte maneira: #include <iostream> #include <locale> using namespace std; int numero(0), novonumero(0), i(0); void numeromultiplicado(int); void numeromultiplicado(int numero) { cout << "\n\n\n"; for (i = 0; i < 21; i++) { novonumero = i * numero; cout << novonumero << "\n"; } } int main() { setlocale(LC_ALL, "Portuguese"); cout << "Digite um número inteiro!" << endl; cin >> numero; numeromultiplicado(numero); return 0; } Qualquer dúvida é só perguntar. Att., Pedro.
  12. Prazer ajudar! É simples a razão porque quem tá olhando de fora acha os erros mais fácil. É um olhar de cima, sem interferência, :D. Edit: Acho que a razão da igualdade com caracteres ASCII e char funcionar é porque o compilador é inteligente e sabe que se você está comprando char com alguma integer, essa integer deve ser um valor ASCII.
  13. Olha o código que postei. Para comprar com caracteres ASCII você deve usar as aspas simples se não estou enganado, ou a barra invertida. E sim, você não precisa das chaves se for utilizar só uma linha no if.
  14. Tente fazer assim #include <stdio.h> #include <stdlib.h> int main() { char nome[31], yn; int loop; do { system("cls"); fflush(stdin); printf(" Digite seu nome: "); gets(nome); printf(" Seu nome e: %s \n\n", nome); printf(" Seu nome esta correto? (Y/N): "); scanf(" %c", &yn); if ((yn=='N') || (yn=='n')) { loop=1; } else { loop=0; } } while (loop==1); return 0; } Na hora de fazer o scanf, você tem que passar o valor para o endereço da variável, você não estava fazendo isso. E além disso, estava comprando um char com uma integer, o que funcionaria, se você tivesse feito a comparação entre char e o seu valor ASCII da forma correta, :D. Da forma que fiz é bem mais fácil. Usei o fflush(stdin) para limpar o buffer depois de cada "do", caso contrário o código não funcionaria na segunda 'ida'. E depois adicionei o return 0, pois como main é uma integer, tem que retornar algo. Att, Pedro.
  15. Ok. Primeiro: para usar as tags digite " " seu código "". (Sem as aspas). E depois, vamos por partes. Para embaralhar, pode usar um for loop ou até mesmo o rand. Para distribuir a mesma coisa. As pilhas podem ser um vetor de C++ ou um vetor à moda antiga. Tenho que sair no momento, mas logo logo posso te ajudar mais. Depois te mando uma MSG por pm.
  16. Qual é a parte que você está com dificuldade? Obs.: Use as code tags por favor. ( 'seu código')
  17. Obrigado Marcelo. Verdade, o switch jogaria fora a necessidade de tantas repetições nas declarações dos 'ifs'.
  18. Olá, você tem 1 par extra de chaves e as suas declarações no if estão erradas. O seu código deveria ficar da seguinte forma: #include <iostream> #include <stdlib.h> #include <conio.h> using namespace std; int main (void) { int a; cout << "DGT a hora que você inicia: "; cin >> a; if (a == 7 || a == 8 || a == 9 || a == 10 || a == 11 || a == 12) { cout << "Seu turno e das 5hs as 12,59hs" << endl; } else if (a == 13 || a == 14 || a == 15 || a == 16 || a == 17 || a == 18 || a == 19 || a == 20) { cout << "Seu turno e das 13hs as 20,59hs" << endl; } else if ( a == 21 || a == 22 || a == 23 || a == 24 || a == 1 || a == 2 || a == 3 || a == 4 || a == 5 || a == 6) { cout << "Seu turno e das 21hs as 6:59hs" << endl; } getch(); return 0; } E para os acentos funcionarem coloque esse código no começo da sua main: setlocale(LC_ALL, "Portuguese"); Não se esqueça de incluir a biblioteca locale no começo do seu programa (#include <locale> Att., Pedro Cunha
  19. PedroCunha

    duvidas no c++

    Você deveria colocar da seguinte maneira os 'ifs': if ( sexo == 'M' || sexo == 'm') { } Att., Pedro
  20. Troque o scanf dos "ifs" para printf e deve funcionar.
  21. Valeu Marcelo! Obrigado pelo apoio, :D. Duvido muito que eu consiga te ensinar alguma coisa, hehehe. Sou esforçado, hehe. Att., Pedro
  22. Boas galera, hoje trago para vocês o código-fonte de um programa de cadastro básico que desenvolvi. Suas funções incluem Cadastrar, Alterar o arquivo, Excluir algo do arquivo e visualizar o arquivo. Utilizei na criação do código-fonte do programa conhecimentos sobre vetores, operações com arquivos, strings, dentre outros. Vou postar o código. Qualquer dúvida, estou à disposição. O programa foi feito em C++. EDIT: Estou postando uma versão atualizada do código, com funções para colorir separadas e versões em Inglês e Português. //Coder: Pedro Milreu Cunha // Tester: Pedro Milreu Cunha // September, 2012. // Free-license. #include <iostream> #include <fstream> #include <limits> #include <string> #include <string.h> #include <vector> #include <locale> #include <stdio.h> #include <windows.h> using namespace std; #define OLD "Data.txt" #define NEW "AlteredData.txt" fstream Data (OLD, ios::app | ios::in); fstream AlteredData (NEW, ios::app | ios::out | ios::in); int NumerodePessoas; string tempstringcadastro, stringcadastrodelete; static string ColoredText; struct Program { string tempnome; string tempsexo; string tempidade; string tempstringCadaster; string novonome; string tempstring[10]; string tempstringdelete[10]; string stringcadastrodelete; string stringcadastro; }; void Register (int); void Register2(int); void Alter (string); void Alter2(string); void Delete(string); void Delete2(string); void Visualize(); void Visualize2(); void Menu(); void Menu2(); void LanguageMenu(); void Color(string); void Open (); void Close (); void RenameAndDelete(); void Open () { Data.open(OLD, ios::app | ios::in | ios::out); AlteredData.open(NEW, ios::app | ios::in | ios::out); } void Close() { Data.close(); AlteredData.close(); } void RenameAndDelete() { remove (OLD); rename (NEW, OLD); } void Register (int NumerodePessoas) // Function used to cadaster people. Works fine. { Close(); Open(); string CadastroS; struct Program RegisterObj[20]; ColoredText = "---------------REGISTER MENU----------------"; Color(ColoredText); cout << "\n\n"; Open(); if (Data.is_open()) { ColoredText = "File is open"; Color(ColoredText); cout << "\n\n"; Data.seekg(0, ios::end); if (Data.tellg() != 0) { Close(); Open(); cout << "-----------------------------------------------------\n\n"; while (getline(Data, CadastroS)) { cout << CadastroS << "\n"; } cout << "\n-----------------------------------------------------\n\n"; cout << "Type the number of people (Max 20): "; cin.sync(); cin >> NumerodePessoas; Close(); Open(); for (int i = 0; i < NumerodePessoas; i++) { cout << "Type the full name of the person: "; cin.sync(); getline(cin, RegisterObj[i].tempnome); Data << RegisterObj[i].tempnome << " "; cout << "Type the gender of the person (Male/Female): "; cin.sync(); getline(cin, RegisterObj[i].tempsexo); Data << RegisterObj[i].tempsexo << " "; cout << "Type the age of the person: "; cin.sync(); getline(cin, RegisterObj[i].tempidade); Data << RegisterObj[i].tempidade << endl; cout << "\n\n"; } cout << "\nProcessing...\n"; Close(); Open(); Data.seekg(0, ios::end); if (Data.tellg() == 0) { Close(); cout << "File still empty!\n"; Menu(); } else if (Data.tellg() != 0) { Close(); Open(); ColoredText = "Here is the contents of the file"; Color(ColoredText); cout << "\n"; cout << "-----------------------------------------------------\n\n"; while (getline(Data, RegisterObj[0].stringcadastro)) { cout << RegisterObj[0].stringcadastro << "\n"; } Close(); cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; Menu(); } } } else if (Data.tellg() == 0) { Close(); ColoredText = "File is empty, time to register something"; Color(ColoredText); cout << "\n\n"; Open(); cout << "Type the number of people (Max 20): "; cin.sync(); cin >> NumerodePessoas; for (int i = 0; i < NumerodePessoas; i++) { cout << "Type the full name of the person: "; cin.sync(); getline(cin, RegisterObj[i].tempnome); Data << RegisterObj[i].tempnome << " "; cout << "Type the gender of the person (Male/Female): "; cin.sync(); getline(cin, RegisterObj[i].tempsexo); Data << RegisterObj[i].tempsexo << " "; cout << "Type the age of the person: "; cin.sync(); getline(cin, RegisterObj[i].tempidade); Data << RegisterObj[i].tempidade << endl; cout << "\n\n"; } cout << "\nProcessing...\n"; Close(); Open(); Data.seekg(0, ios::end); if (Data.tellg() == 0) { Close(); cout << "File still empty!\n"; Menu(); } else if (Data.tellg() != 0) { Close(); Open(); ColoredText = "Here is the contents of the file"; Color(ColoredText); cout << "\n"; cout << "-----------------------------------------------------\n\n"; while (getline(Data, RegisterObj[0].stringcadastro)) { cout << RegisterObj[0].stringcadastro << "\n"; } Close(); cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; Menu(); } } else if (!Data.is_open()) { cout << "File error!\n"; exit(0); Close(); } } void Alter(string tempstringcadastro) // Function used to alter the cadastered data { struct Program AlterObj; cout << "\n"; ColoredText = "----------------ALTER MENU------------"; Color(ColoredText); cout << "\n\n"; string newfilestring, CadastroS; Open(); if (Data.is_open() && AlteredData.is_open()) { cout << "\n"; ColoredText = "Files opened"; Color(ColoredText); cout << "\n\n"; } else if (!Data.is_open() && !AlteredData.is_open()) { cout << "File error!\n"; exit(0); } Data.seekg(0, ios::end); if (Data.tellg() == 0) { ColoredText = "File is empty"; Color(ColoredText); Close(); Menu(); } if (Data.tellg() != 0) { Close(); Open(); cout << "\n"; cout << "-----------------------------------------------------\n\n"; while(getline(Data, CadastroS)) { cout << CadastroS << "\n"; } cout << "\n"; cout << "-----------------------------------------------------\n\n"; Close(); cout << "Type the data you want to change: "; cin.sync(); getline (cin, AlterObj.stringcadastro); cout << "Type to what you want it to change: "; cin.sync(); getline(cin, AlterObj.novonome); Open(); while (getline(Data, AlterObj.tempstring[0])) { if (AlterObj.stringcadastro == AlterObj.tempstring[0] ) { AlteredData << AlterObj.novonome << "\n"; } else if (AlterObj.stringcadastro != AlterObj.tempstring[0]) { AlteredData << AlterObj.tempstring[0] << "\n"; } } Close(); cout << "\n\n"; cout << "Processing...\n"; Open(); Data.seekg(0, ios::end); if (Data.tellg() == 0) { cout << "File still empty!\n"; RenameAndDelete(); Menu(); } else if (Data.tellg() != 0) { Close(); ColoredText = "Here is the contents of the file"; Color(ColoredText); cout << "\n"; cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; Open(); while(getline (AlteredData, newfilestring)) { cout << newfilestring << "\n"; } Close(); RenameAndDelete(); cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; } Menu (); } } void Delete (string stringcadastrodelete) { string CadastroSdelete, newfilestringdelete; struct Program DeleteObj; cout << "\n"; ColoredText = "----------------DELETE MENU------------"; Color(ColoredText); cout << "\n\n"; Open(); if (Data.is_open() && AlteredData.is_open()) { cout << "\n"; ColoredText = "Files opened"; Color(ColoredText); cout << "\n\n"; } else if (!Data.is_open() && !AlteredData.is_open()) { cout << "File error!\n"; exit(0); } Data.seekg(0, ios::end); if (Data.tellg() == 0) { ColoredText = "File is empty"; Color(ColoredText); Close(); Menu(); } else if (Data.tellg() != 0) { Close(); Open(); cout << "\n"; cout << "-----------------------------------------------------\n\n"; while(getline(Data, CadastroSdelete)) { cout << CadastroSdelete << "\n"; } cout << "\n"; cout << "-----------------------------------------------------\n\n"; Close(); cout << "Type the data you want to delete: "; cin.sync(); getline (cin, DeleteObj.stringcadastrodelete); Open(); Data.seekg(0, ios::beg); while (getline(Data, DeleteObj.tempstringdelete[0])) { if (DeleteObj.stringcadastrodelete != DeleteObj.tempstringdelete[0]) { AlteredData << DeleteObj.tempstringdelete[0] << "\n"; } } Close(); RenameAndDelete(); Open(); cout << "\n\n"; cout << "Processing...\n"; ColoredText = "Here is the contents of the file"; Color(ColoredText); cout << "\n"; cout << "-----------------------------------------------------\n\n"; while(getline (Data, newfilestringdelete)) { cout << newfilestringdelete << "\n"; } Close(); cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; } Menu (); } void Visualize() { string file; struct Program VisualizeObj; cout << "\n"; ColoredText = "----------------VISUALIZE MENU------------"; Color(ColoredText); cout << "\n\n"; Open(); if (Data.is_open()) { cout << "\n"; ColoredText = "File is open\n"; Color(ColoredText); } else if (!Data.is_open()) { cout << "File error!\n"; exit(0); } Data.seekg(0, ios::end); if (Data.tellg() == 0) { ColoredText = "File is empty\n"; Color(ColoredText); cout << "\n\n"; Close(); Menu(); } else if (Data.tellg() != 0) { Close(); Open(); cout << "Processing...\n"; ColoredText = "Here is the contents of the file"; Color(ColoredText); cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; while (getline (Data, file)) { cout << file << "\n"; } cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; Close(); } Menu(); } void Menu () { int opcao; ColoredText = "----------------MAIN MENU------------"; Color(ColoredText); cout << "\n\n"; cout << "1 - Cadaster\n" "2 - Alter\n" "3 - Delete\n" "4 - Visualize\n" "5 - Change the language\n" "6 - Exit\n" << endl; cin >> opcao; switch (opcao){ case 1: { Register(NumerodePessoas); break; } case 2: { Alter(tempstringcadastro); break; } case 3: { Delete(stringcadastrodelete); break; } case 4: { Visualize(); break; } case 5: { LanguageMenu(); break; } case 6: { cout << "\n"; ColoredText = "Goodbye! Come again.\n"; Color(ColoredText); exit(0); break; } default: { cout << "\n"; ColoredText = "Goodbye! Come again.\n"; Color(ColoredText); exit(0); } } } void Menu2() { int opcao; ColoredText = "----------------MENU PRINCIPAL------------"; Color(ColoredText); cout << "\n\n"; cout << "1 - Cadastrar\n" "2 - Alterar\n" "3 - Deletar\n" "4 - Visualizar\n" "5 - Mudar o idioma\n" "6 - Sair\n" << endl; cin >> opcao; switch (opcao){ case 1: { Register2(NumerodePessoas); break; } case 2: { Alter2(tempstringcadastro); break; } case 3: { Delete2(stringcadastrodelete); break; } case 4: { Visualize2(); break; } case 5: { LanguageMenu(); break; } case 6: { cout << "\n"; ColoredText = "Adeus! Volte sempre.\n"; Color(ColoredText); exit(0); break; } default: { cout << "\n"; ColoredText = "Adeus! Volte sempre.\n"; Color(ColoredText); exit(0); } } } void Register2 (int NumerodePessoas) // Função usada para cadastrar pessoas. { string CadastroS; struct Program RegisterObj[20]; ColoredText = "---------------MENU DE CADASTRO----------------"; Color(ColoredText); cout << "\n\n"; Close(); Open(); Open(); if (Data.is_open()) { Data.seekg(0, ios::end); ColoredText = "Arquivo abriu"; Color(ColoredText); cout << "\n\n"; if (Data.tellg() != 0) { Close(); Open(); cout << "-----------------------------------------------------\n\n"; while (getline(Data, CadastroS)) { cout << CadastroS << "\n"; } cout << "\n-----------------------------------------------------\n\n"; cout << "Digite o número de pessoas (Max 20): "; cin.sync(); cin >> NumerodePessoas; Close(); Open(); for (int i = 0; i < NumerodePessoas; i++) { cout << "Digite o nome completo da pessoa: "; cin.sync(); getline(cin, RegisterObj[i].tempnome); Data << RegisterObj[i].tempnome << " "; cout << "Digite o sexo da pessoa (Male/Female): "; cin.sync(); getline(cin, RegisterObj[i].tempsexo); Data << RegisterObj[i].tempsexo << " "; cout << "Digite a idade da pessoa: "; cin.sync(); getline(cin, RegisterObj[i].tempidade); Data << RegisterObj[i].tempidade << endl; cout << "\n\n"; } cout << "\nProcessando...\n"; Close(); Open(); Data.seekg(0, ios::end); if (Data.tellg() == 0) { Close(); cout << "Arquivo está vazio!\n"; Menu2(); } else if (Data.tellg() != 0) { Close(); Open(); ColoredText = "Aqui está o conteúdo do arquivo"; Color(ColoredText); cout << "\n"; cout << "-----------------------------------------------------\n\n"; while (getline(Data, RegisterObj[0].stringcadastro)) { cout << RegisterObj[0].stringcadastro << "\n"; } Close(); cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; Menu2(); } } } else if (Data.tellg() == 0) { Close(); ColoredText = "Arquivo está vazio, hora de registrar alguma coisa, :D"; Color(ColoredText); cout << "\n\n"; Open(); cout << "Digite o número de pessoas (Max 20): "; cin.sync(); cin >> NumerodePessoas; for (int i = 0; i < NumerodePessoas; i++) { cout << "Digite o nome completo da pessoa: "; cin.sync(); getline(cin, RegisterObj[i].tempnome); Data << RegisterObj[i].tempnome << " "; cout << "Digite o sexo da pessoa (Masculino/Feminino): "; cin.sync(); getline(cin, RegisterObj[i].tempsexo); Data << RegisterObj[i].tempsexo << " "; cout << "Digite a idade da pessoa: "; cin.sync(); getline(cin, RegisterObj[i].tempidade); Data << RegisterObj[i].tempidade << endl; cout << "\n\n"; } cout << "\nProcessando...\n"; Close(); Open(); Data.seekg(0, ios::end); if (Data.tellg() == 0) { Close(); cout << "Arquivo ainda está vazio!\n"; Menu2(); } else if (Data.tellg() != 0) { Close(); Open(); ColoredText = "Aqui está o conteúdo do arquivo."; Color(ColoredText); cout << "\n"; cout << "-----------------------------------------------------\n\n"; while (getline(Data, RegisterObj[0].stringcadastro)) { cout << RegisterObj[0].stringcadastro << "\n"; } Close(); cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; Menu2(); } } else if (!Data.is_open()) { cout << "Erro no arquivo!\n"; exit(0); Close(); } } void Alter2(string tempstringcadastro) // Função usada para alterar cadastros { struct Program AlterObj; cout << "\n"; ColoredText = "----------------MENU DE ALTERAÇÕES------------"; Color(ColoredText); cout << "\n\n"; string newfilestring, CadastroS; Open(); if (Data.is_open() && AlteredData.is_open()) { cout << "\n"; ColoredText = "Arquivos abriram"; Color(ColoredText); cout << "\n\n"; } else if (!Data.is_open() && !AlteredData.is_open()) { cout << "Erro no arquivo!\n"; exit(0); } Data.seekg(0, ios::end); if (Data.tellg() == 0) { ColoredText = "Arquivo está vazio"; Color(ColoredText); Close(); Menu2(); } if (Data.tellg() != 0) { Close(); Open(); cout << "\n"; cout << "-----------------------------------------------------\n\n"; while(getline(Data, CadastroS)) { cout << CadastroS << "\n"; } cout << "\n"; cout << "-----------------------------------------------------\n\n"; Close(); cout << "Digite o que você deseja mudar: "; cin.sync(); getline (cin, AlterObj.stringcadastro); cout << "Digite para o quê deseja mudar: "; cin.sync(); getline(cin, AlterObj.novonome); Open(); while (getline(Data, AlterObj.tempstring[0])) { if (AlterObj.stringcadastro == AlterObj.tempstring[0] ) { AlteredData << AlterObj.novonome << "\n"; } else if (AlterObj.stringcadastro != AlterObj.tempstring[0]) { AlteredData << AlterObj.tempstring[0] << "\n"; } } Close(); cout << "\n\n"; cout << "Processando...\n"; Open(); Data.seekg(0, ios::end); if (Data.tellg() == 0) { cout << "Arquivo ainda está vazio!\n"; RenameAndDelete(); Menu2(); } else if (Data.tellg() != 0) { Close(); Open(); ColoredText = "Aqui está o conteúdo do arquivo"; Color(ColoredText); cout << "\n"; cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; while(getline (AlteredData, newfilestring)) { cout << newfilestring << "\n"; } Close(); RenameAndDelete(); cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; } Menu2 (); } } void Delete2 (string stringcadastrodelete) //Função usada para deletar cadastros. { string CadastroSdelete, newfilestringdelete; struct Program DeleteObj; cout << "\n"; ColoredText = "----------------MENU DE EXCLUSÃO------------"; Color(ColoredText); cout << "\n\n"; Open(); if (Data.is_open() && AlteredData.is_open()) { cout << "\n"; ColoredText = "Arquivos abriram"; Color(ColoredText); cout << "\n\n"; } else if (!Data.is_open() && !AlteredData.is_open()) { cout << "Erro no arquivo!\n"; exit(0); } Data.seekg(0, ios::end); if (Data.tellg() == 0) { ColoredText = "Arquivo está vazio"; Color(ColoredText); Close(); Menu2(); } else if (Data.tellg() != 0) { Close(); Open(); cout << "\n"; cout << "-----------------------------------------------------\n\n"; while(getline(Data, CadastroSdelete)) { cout << CadastroSdelete << "\n"; } cout << "\n"; cout << "-----------------------------------------------------\n\n"; Close(); cout << "Digite o que deseja deletar: "; cin.sync(); getline (cin, DeleteObj.stringcadastrodelete); Open(); Data.seekg(0, ios::beg); while (getline(Data, DeleteObj.tempstringdelete[0])) { if (DeleteObj.stringcadastrodelete != DeleteObj.tempstringdelete[0]) { AlteredData << DeleteObj.tempstringdelete[0] << "\n"; } } Close(); RenameAndDelete(); Open(); cout << "\n\n"; cout << "Processando...\n"; ColoredText = "Aqui está o conteúdo do arquivo."; Color(ColoredText); cout << "\n"; cout << "-----------------------------------------------------\n\n"; while(getline (Data, newfilestringdelete)) { cout << newfilestringdelete << "\n"; } Close(); cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; } Menu2 (); } void Visualize2() //Função usada para visualizar o conteúdo do arquivo. { string file; struct Program VisualizeObj; cout << "\n"; ColoredText = "----------------MENU DE VISUALIZAÇÃO------------"; Color(ColoredText); cout << "\n\n"; Open(); if (Data.is_open()) { cout << "\n"; ColoredText = "Arquivo abriu\n"; Color(ColoredText); } else if (!Data.is_open()) { cout << "Erro no arquivo!\n"; exit(0); } Data.seekg(0, ios::end); if (Data.tellg() == 0) { ColoredText = "Arquivo está vazio\n"; Color(ColoredText); cout << "\n\n"; Close(); Menu2(); } else if (Data.tellg() != 0) { Close(); Open(); cout << "Processando...\n"; ColoredText = "Aqui está o conteúdo do arquivo."; Color(ColoredText); cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; while (getline (Data, file)) { cout << file << "\n"; } cout << "\n\n"; cout << "-----------------------------------------------------\n\n"; Close(); } Menu2(); } void Color (string ColoredText) { HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE ); WORD wOldColorAttrs; CONSOLE_SCREEN_BUFFER_INFO csbiInfo; /* * First save the current color information */ GetConsoleScreenBufferInfo(h, &csbiInfo); wOldColorAttrs = csbiInfo.wAttributes; /* * Set the new color information */ SetConsoleTextAttribute ( h, FOREGROUND_RED | FOREGROUND_INTENSITY ); cout << "\n"; cout << ColoredText; SetConsoleTextAttribute ( h, wOldColorAttrs); } void LanguageMenu() { int opcaoidioma = 0; cout << "\n"; cout << "What language do you wish to use?/ Qual idioma você deseja usar?\n" << endl; cout << "1 - English\n" "2 - Português\n" << endl; cin >> opcaoidioma; switch (opcaoidioma) { case 1: { Menu(); break; } case 2: { Menu2(); break; } default: { cout << "\n"; cout << "Invalid option/Opção inválida\n" << endl; LanguageMenu(); break; } } } int main() { SetConsoleTitle("Register"); setlocale(LC_ALL, "Portuguese"); LanguageMenu(); } OBS.: Caso não esteja usando Windows, desconsidere as funções para colorir o texto HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE ); WORD wOldColorAttrs; CONSOLE_SCREEN_BUFFER_INFO csbiInfo; /* * First save the current color information */ GetConsoleScreenBufferInfo(h, &csbiInfo); wOldColorAttrs = csbiInfo.wAttributes; /* * Set the new color information */ SetConsoleTextAttribute ( h, FOREGROUND_RED | FOREGROUND_INTENSITY ); SetConsoleTextAttribute ( h, wOldColorAttrs); que são da biblioteca Windows.h. Att., Pedro.
  23. Uau! Só uau Marcelo! Vou ter que tirar alguns meses para ler e aprender esse código totalmente, :D. Boa!
  24. Não tenho certeza, mas tente mudar o for para: for (i=0;i<3;i++). Aliás, veja que o seu "printf" do 'x' está fora do loop, então só irá mostrar x=3, e não x=1,x=2, e x=3.
×
×
  • Criar Novo...