olá a todos, sou estudante de uma instituição federal, e tenho aulas de programação em c++(novo membro por aqui, esta foi minha apresentação (: ).
na seguinte operação
#include <iostream>
#include <string>
using namespace std;
struct cadastro{
char nome [100];
};
int main(){
int numerador = 0;
cadastro objeto[10];
for (int l = 0; l < 5; l++){
cin.getline(objeto[l].nome, 10, '\n');
}
for (int l = 0; l < 5; l++){
cout << "\n" << objeto[l].nome << "\n";
}
return 0;
}
tá aparecendo um errozinho insistente, utilizei o getline parapor um “freio” a variável char para digitar n caracteres, mas no momento quando excedo o número, ele para o loop, queria fazer com que ele apenas pegasse os n caracteres, tirar o excedente (se houver), e continuar a operação…
tenho também outra dúvida, aonde encontro material de estudo para vectores? O pouco que achei está neste forum… mas não esclareceu tudo…
#include <iostream>
#include <string>
using namespace std;
struct Pessoa
{
string nome; //Prefira string no lugar de char*
};
//Assinatura padrão do main
int main(int argc, char* argv[])
{
//Prefira vectors no lugar de arrays primitivos
vector<Pessoa> pessoas;
for (int i = 0; i < 5; ++i)
{
//Cria e lê o nome
Pessoa pessoa;
cin >> pessoa.nome;
//Se tiver mais que 10 caracteres, separa só os 10 primeiros
if (nome.size() > 10)
{
pessoa.nome = pessoa.nome.substr(0,10);
}
//Adiciona a pessoa a lista
pessoas.push_back(pessoa);
}
//Lista todas as pessoas da lista
for (int i = 0; i < pessoas.size(); ++i)
{
cout << endl << pessoas[i].nome << endl;
}
return 0;
}
cara... eu tava pensando determinar o limite com esse método, até tentei e fiquei quebrando a cabeça, mas com char é impossível fazer isso..
Agradeço muito pela a ajuda, me ajudou bastante (:
Fiquem com Deus
cara… eu tava pensando determinar o limite com esse método, até tentei e fiquei quebrando a cabeça, mas com char é impossível fazer isso…
Agradeço muito pela a ajuda, me ajudou bastante (:
Fiquem com Deus