Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

badu.ns

[Resolvido] Lendo strings apartir do teclado.

Recommended Posts

Bom pessoal, é o seguinte, eu fiz esse código aqui no C++:

 

#include <iostream.h>#include <conio.h>#include <cstring.h>void main(){ char nome[100], i;								   //declaraçao das variaveis for(i=0; i<4; i++) {  cout<<"\n Informe o nome da "<<i+1<<"ª loja: ";  cin.getline(nome,100);							 //recebe nomes  clrscr(); } for (i=0; i<4; i++) {  cout<<nome<<endl<<"\n"; }}

O que preciso q ele faça é o seguinte: Armazenar as palavras q eu digitar e depois mostrar elas na ordem correta. Armazenar ele atá armazena, mas na hora de mostrar ele mostra apenas a ultima palavra q eu digitei, e as anteriores ele simplismente "come elas", ou armazena por cima, aguma coisa...

Tinha feito de outro jeito antes, que tava funcionando, mas do jeito q tinha feito antes, c eu tivesse 1000 nomes diferentes, teria q abrir 1000 variáveis diferentes no fonte, ai não dá :mellow:

Bom, c alguém puder me ajudar, acho q deva ser fácil, mas não estou enxergando a solução no momento http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

E mais uma ciosa, eu estou usando o Turbo C++ 4.5, tem algum outro compilador melhor que ele e tipo, que não mude em mto as funções, pois já estou acostumando a usar esse arcaico turbo http://forum.imasters.com.br/public/style_emoticons/default/yay.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Armazenar ele atá armazena, mas na hora de mostrar ele mostra apenas a ultima palavra q eu digitei, e as anteriores ele simplismente "come elas", ou armazena por cima, aguma coisa...

É exatamente isso que acontece.A cada leitura a variável nome é substituido pela última string lida.Para resolver voce precisa declar a quantidade de variáveis que deseja. Algo do tipo:
char nome[10][100];
Seriam 10 variáveis nome com 100 caracteres cada.mas isso é C em C++ voce pode usar String. Veja isso:http://en.wikipedia.org/wiki/String_(C++)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Kandrade, obrigado pela atenção mas receio que não ajudou mto :// Pelo q eu entendi no link q você me passou aquela forma de usar string serve mais para comparação, e na declaração que você me passou tb ela funciona para um tipo de matriz ou coisa parecida, até daria certo de armazenar as palavras numa matriz, mas eu naum sei como fazer, a função cin.getline não aceita qndo declaro char "nome[10][100]".

Pra você me entender melhor, qndo compilado ele teria que funcionar igual a esse:

#include <iostream.h>#include <conio.h>#include <cstring.h>void main(){ char nome1[20], nome2[20], nome3[20], nome4[20];	//declaraçao das variaveis cout<<"\n Informe o nome da 1º loja: "; cin.getline(nome1,20,'\n'); clrscr();						 //recebe primeiro nome cout<<"\n Informe o nome da 2º loja: "; cin.getline(nome2,20,'\n'); clrscr();						 //recebe segundo nome cout<<"\n Informe o nome da 3º loja: "; cin.getline(nome3,20,'\n'); clrscr();						 //recebe terceiro nome cout<<"\n Informe o nome da 4º loja: "; cin.getline(nome4,20,'\n'); clrscr();						 //recebe quarto nome cout<<"\nNomes das lojas:\n";					  //mostra os nomes digitados cout<<nome1<<endl<<"\n"; cout<<nome2<<endl<<"\n"; cout<<nome3<<endl<<"\n"; cout<<nome4<<endl<<"\n";}

Mas ai, no caso, eu tive que abrir uma variável pra cada nome armazenado, e não queria que ficasse assim, queria que armazenasse tudo em uma variável só, e depois mostrasse.

Já pesquisei em tudo quanto é lugar e não achei de maneira nenhuma como eu posso fazer isso...

E mais uma coisa, char* não pode ser tb http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <iostream.h>struct Loja{	   char nome[30];};int main(){	Loja loja[4];	int i;	for(i=0; i<4; i++)	{			 cout<<"Entre com o nome da " <<i+1 <<"a. loja: \n";			 fflush(stdin); // limpa o buffer do teclado 			 gets(loja[i].nome);	}	for(i=0; i<4; i++)	{			 cout<<"\n\nNome da "<<i+1<<"a. loja: \n";			 cout<<loja[i].nome;	}	cout<<endl;	system("pause");	return 0;	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.