Ir ao conteúdo
  • Cadastre-se

Celestino Alona

Membros Juniores
  • Total de itens

    14
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Bom dia a todos. Fiz um código usando JOptionPane (acabei de chegar na parte de GUI's) , porém na hora de imprimir o que eu quero não sai corretamente. O usuário deve inserir alguns números e ao final deve ser mostrado o maior número inserido. package MaiorNum; import java.util.Scanner; import javax.swing.JOptionPane; public class processos { private int counter, number, largest; public void contador() { Scanner sc = new Scanner(System.in); for(counter = 0; counter < 10; counter++) { JOptionPane.showInputDialog(null, "%d° número : ", counter); /*O erro acontece aqui, pois na impressão aparece %d ao invés do número correspondente ao contador do for (counter)*/ number = Integer.parseInt(sc.nextLine()); if(counter == 0) { largest = number; } if(number > largest && counter > 0) { largest = number; } } String message = String.format("Maior número digitado : %d\n\n", largest); JOptionPane.showMessageDialog(null, message); } }
  2. Eu tirei o endereço e coloquei apenas o nome da pasta, aí funcionou perfeitamente, inclusive com outras pastas também. Obrigado pelas respostas de todos, é bom ver que o fórum é bem ativo e tem pessoas querendo ajudar outras com menos conhecimento kkkk.
  3. Alguém saberia me explicar o por que de o programa não estar lendo o conteúdo do arquivo ? #include<stdio.h> #include<stdlib.h> main() { char x[100]; freopen("D:\\ContaCelestinoAlona\\Área de Trabalho\\Arquivo 2.txt", "r", stdin); fgets(x, 100, stdin); printf("%s", x); return 0; }
  4. Bom dia, estava fazendo meu estudo de c/c++ e me deparei com um problema na hora de adicionar informações à um arquivo.txt que eu criei. Eu estou tentando fazer um código simples em que o usuário digita seu nome, o mesmo recebe algumas alterações, e depois esse nome é adicionado ao arquivo (adicionado, sem apagar o que já está). Porém, embora o programa rode, não acontece o que deveria. #include<stdio.h> #include<stdlib.h> #include<iostream> #include<locale.h> #include<ctype.h> using namespace std; main() { setlocale(LC_ALL,"portuguese"); char word[300], copy[300]; int i=0; FILE *file1 = fopen("Arquivo 2.txt", "a"); cout << "Insira seu nome : "; gets(word); while(word[i] != '\0') { if(islower(word[0])) { word[0] = toupper(word[0]); } i++; if(i != 0) { word[i] = tolower(word[i]); } } cout << "\n\nSeu nome é : " << word << "\n\n"; while(fgets(copy, 300, file1) != '\0') { fputs(word, file1); } return 0; }
  5. Boa noite, estava fazendo meu estudo de c/c++ e tentei fazer um código simples para usar a biblioteca ctype.h, porém, embora o programa rode, ele não faz o que deveria fazer. O objetivo é o usuário digitar o seu nome e o mesmo receber algumas alterações ao longo do programa. O código deve pegar a primeira letra digitada e, caso seja minúscula, deve transformá-la em maiúscula, depois deve transformar as demais letras em minúsculas. Abaixo o código em questão. #include<stdio.h> #include<stdlib.h> #include<iostream> #include<locale.h> #include<ctype.h> using namespace std; main() { setlocale(LC_ALL,"portuguese"); char word[300]; int i=0; cout << "Insira seu nome : "; cin >> word; while(word[i] != '\0') { if(islower(word[0])) //Verifica se a primeira letra é minúscula, para transformá-la em maiúscula. { toupper(word[0]); } i++; if(i != 0) // Transforma as demais letras em minúsculas. { tolower(word[i]); } } cout << "\n\nSeu nome é : " << word << "\n\n"; cout << "Enter para sair."; system("pause>>null"); return 0; }
  6. @AnsiC A primeira linha pelo que eu entendi é uma função separada né ? Eu entendi a ideia, porém o código em si não kkkk. De qualquer forma obrigado pela atenção, já me deu uma luz pelo menos.
  7. Bom dia, gostaria de tirar uma dúvida que me veio agora. Teria como dar algum comando em C para que if(alguma coisa aconteça) o programa limpa a última linha escrita? Eu tô com esse pequeno problema, pois tô fazendo um código onde eu quero que caso o usuário digite algo não permitido, haja uma limpeza naquilo que ele escreveu, porém sem apagar tudo o que foi escrito anteriormente na tela. Por exemplo, eu coloco um printf("Insira seu nome : ",x); e o usuário coloca apenas números ou caracteres especiais. Quero que haja uma limpeza nesse printf e automaticamente ele reapareça, porém sem o nome inserido pelo usuário, para que ele o escreva novamente. Eu sei que tem o "goto" porém eu não quero que fique um monte de "Insira seu nome : " na tela, caso ele digite algo errado várias e várias vezes. Teria alguma função system("cls); que fosse apenas para a parte do código que você escolher ?
  8. Bom dia, estou fazendo (tentando) um jogo da forca e já tive um probleminha na hora de inserir o nome dos jogadores. Quero que não seja possível algum dos nomes ficar vazio. Usei a função "strlen" para fazer a contagem de caracteres e usei um if pra retornar à um certo ponto do programa caso a contagem de caracteres seja 0, porém não tive muito sucesso. Também quero evitar que o usuário aperte apenas o ESPAÇO, pois se eu não me engano ESPAÇOS também contam como caracteres. Então seria algo do tipo : caso a string seja fazia ou contenha APENAS espaços, retorne à x linha do código. Caso usem um código mais avançado pra isso, com vários ponteiros e etc, peço que por favor coloquem comentários explicando as partes do código, pois ainda sou iniciante (ou quase) em programação. Desde já agradeço. #include<stdio.h> #include<stdlib.h> #include<locale.h> #include<ctype.h> #include<string.h> main() { setlocale(LC_ALL,"portuguese"); char palavra[100], tentativa; int st=0, contador=0, tamanho_str=0; struct jogadores { char ident[50]; } player_name[6]; printf("\n\t\t\t\t\t\t\tJogo da Forca"); L15: printf("\n\nEscolha o número de jogadores (máximo 6) : "); scanf("%d",&st); fflush(stdin); if(st!=1 && st!=2 && st!=3 && st!=4 && st!=5 && st!=6) // Verifica se o número digitado é algum dos permitidos na quantidade de jogadores (1-6) { system("cls"); printf("\n\t\t\t\t\t\t\tJogo da Forca"); goto L15; } L38: for(contador=0; contador<st; contador++) { printf("Insira o nome do jogador %d : ",contador+1); fgets(player_name[contador].ident, 50, stdin); tamanho_str = strlen(player_name[contador].ident); if(tamanho_str == 0) { goto L38; } } return 0; }
  9. Boa noite (ou bom dia, pois são 1:02). Estou tentando fazer um código de jogo da forca, porém quando fui começar pensei em dar um jeito de o usuário não poder inserir letras na hora de selecionar o número de jogadores, que vai de 1-6. Pesquisei algumas opções e encontrei uma função da biblioteca ''ctype.h" chamada "isdigit", porém acho que não estou a usando corretamente, pois o código não está funcionando da maneira que eu gostaria. #include<stdio.h> #include<stdlib.h> #include<locale.h> #include<ctype.h> main() { setlocale(LC_ALL,"portuguese"); char name[100], tentativa; int st=0, contador=0; struct jogadores { char ident[50]; } nomes[6]; printf("\n\t\t\t\t\t\t\tJogo da Forca"); L15: printf("\n\nEscolha o número de jogadores (máximo 6) : "); scanf("%d",&st); fflush(stdin); if(isdigit(st)!=0) /* Se for um número */ { if(st!=1 && st!=2 && st!=3 && st!=4 && st!=5 && st!=6) // Verifica se o número digitado é algum dos permitidos na quantidade de jogadores (1-6) { system("cls"); printf("\n\t\t\t\t\t\t\tJogo da Forca"); goto L15; } } else // Se não for um número { system("cls"); printf("\n\t\t\t\t\t\t\tJogo da Forca"); goto L15; } return 0; }
  10. @giu_d Foca só na função mesmo. Eu queria saber se da pra fazer aquele processo de contagem de caracteres na main. Por que eu tentei passar o processo da função pra main e deu erro. Tem alguns comentários e ponteiros que não fazem muito sentido, mas é por que eu tava alterando o código e fazendo "experimentos" pra entender como ele funcionava, porém eu não mexi na função que faz a contagem de caracteres inseridos na string. Resumindo, é pra aparecer na tela a quantidade de caracteres inseridos na string digitada pelo usuário. As informações que aparecem além disso são, como eu disse, "experimentos" que eu fiz pra entender melhor.
  11. Bom dia. Estava fazendo meu estudo sobre ponteiros em C e me deparei com um código para contagem de caracteres numa string. Entretanto, eu tentei refazer o código, porém sem usar função, fazendo todo o processo na main. Abaixo o programa "original" porém com algumas alterações e comentários que eu fiz, pra conseguir entender melhor. Eu entendi o código, porém queria saber o por que de não estar funcionando fora de uma função. #include<stdio.h> #include<stdlib.h> #include<locale.h> void contagem(char *name); /* Protótipo da função */ main() { setlocale(LC_ALL,"portuguese"); char name[100]; char *ptr = name; char *search_char = &name[6]; /* Quando for escolher a posição do vetor, lembrar de colocar o '&'*/ int size=0; printf("Insira seu nome : "); // fgets(name, 100, stdin); --> fgets adiciona uma unidade ao endereço, não sei ao certo se é isso, mas a contagem fica com 1 a mais gets(name); contagem(name); printf("\n*Search_char = %c\n\nSearch_char = %d\n",*search_char, search_char); /* Criei search_char para confirmar se cada */ /* número correspondia a um caractere. */ *search_char='z'; /* Como o ponteiro search_char tem como endereço a posição 7 do vetor name, alterando o *search_char (que controla o conteúdo dessa posição do vetor) para recebendo o caractere 'z' é como dizer que a posição 7 do vetor irá receber 7*/ search_char = &name[2]; /* Agora ele aponta para a posição 2 do vetor name */ *search_char = 'l'; /* Portanto, *search_char agora irá controlar o conteúdo da mesma, colocando um 'l' na posição 2 do vetor name*/ search_char = name; /* Agora ele aponta para a posição 0 do vetor name */ *search_char = '2'; /* Portanto, *search_char agora irá controlar o conteúdo da mesma, colocando um '2' na posição 0 do vetor name.*/ printf("\n%s\n\n", name); size = sizeof(char); printf("Número de bytes do tipo char --> %d",size); return 0; } void contagem(char *name) { char *ptr = name; while(*name!='\0') { printf("Valor de name no while --> %d\n----------------------\n",name); /* O incremento funciona para fazer a contagem de caracteres, pois o tipo char possui 1 byte, então a conta fica exata */ /* Cada número impresso corresponde ao endereço de um caractere do vetor "name" */ name++; } printf("ptr - name = número de caracteres inseridos no nome : %d\n\n", (name)-ptr); }

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

×