Ir ao conteúdo

Posts recomendados

Postado

E ai galera, preciso fazer um pequeno editor de texto, que deve parar quando o usuário digitar determinada tecla, só que não consigo fazer isso funcionar, alguém pode me dar uma ajuda?

#include <stdio.h>
#include <stdlib.h>

int notepad(){
	int i, j, aux, l, c;
	char **txt;
	printf("Digite o número de linhas e colunas\n");
	scanf("%d%d", &i, &j);
	//aloca as linhas
	txt = (char **) calloc(i, sizeof(char *));
	//aloca colunas
	for (aux = 0; aux < i; aux++)
		txt[aux] = (char *) calloc(j, sizeof(char));
	//leitura da matriz
	printf("Escreva qualquer coisa.\nPara interromper, digite '!' e dê enter.\n");
	do{
		for(l = 0; l < i; l++)
			for(c = 0; c < j; c++)
				scanf("%c", &txt[l][c]);
		}while (txt[l][c] != '!');
	//exibe matriz
	for(int l = 0; l < i; l++)
		for(int c = 0; c < j; c++)
			printf("%c", txt[l][c]);
	//liberar memória alocada
	for(aux = 0; aux < l; aux++)
		free(txt[aux]);
	free(txt);
	return 0;
}

int main(){
	notepad();
	return 0;
}

Esse é o código, ele funciona só até a parte de escrever o texto, mas o ponto de parada não funciona.

Postado
/*do{
		for(l = 0; l < i; l++)
			for(c = 0; c < j; c++)
				scanf("%c", &txt[l][c]);
		}while (txt[l][c] != '!');*/

for(l = 0; l < i; l++)
{
	for(c = 0; c < j; c++)
	{
		scanf("%c", &txt[l][c]);
		if (txt[l][c] == '!') break;
	}
	if (txt[l][c] == '!') break;
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!