-
Posts
14 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que Celestino Alona postou
-
Java Erro de impressão no for
Celestino Alona respondeu ao tópico de Celestino Alona em Java/Android SDK
-
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); } }
-
C Problema com leitura de arquivo.
Celestino Alona respondeu ao tópico de Celestino Alona em C/C#/C++
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. -
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; }
-
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; }
-
@AnsiC Muito obrigado.
-
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; }
-
C Contagem de caracteres na String
Celestino Alona respondeu ao tópico de Celestino Alona em C/C#/C++
@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. -
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 ?
-
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; }
-
C Impedir o usuário de inserir letras
Celestino Alona respondeu ao tópico de Celestino Alona em C/C#/C++
Valeu. Funcionou aqui. -
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; }
-
C Contagem de caracteres com Ponteiros
Celestino Alona respondeu ao tópico de Celestino Alona em C/C#/C++
@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. -
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 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