Me parece que o getline não aceita aquela notação. Eu sei que getline(cin, nome); funcionaria mas o problema é que eu tenho que obter mais de um nome. Com isso, gostaria de saber qual é a sintaxe para que eu possa obter nomes completos de alunos com getline. Obrigado pelo esclarecimento.
Você pode usar std::string e std::vector ? Eu recomendaria usar isso, em vez de usar vetores bidimensionais de caracteres, que são um pouco difíceis de lidar, e desperdiçam muito espaço.
PhoenixWings
Obrigado pela atenção thingol. O problema é que não conheço a manipulação de C++ através de std’s. Seria realmente difícil driblar o buffer com o uso de um vetor bidimensional de caracteres ?
E
entanglement
Bom, vou mostrar como se faz com “string” e “vector”. Se você sabe mais Java que C++, vai ver que muitas coisas são mais parecidas com Java que com o C++ que você aprendeu na escola. Por exemplo, o “std::string” lembra um pouco o java.lang.String ou o java.lang.StringBuilder, e o “std::vector” lembra um pouco o java.util.ArrayList.
#include<iostream>#include<string>#include<vector>usingnamespacestd;intmain(intargc,char*argv[]){vector<string>alunos;cout<<"Digite um nome de aluno por linha, e deixe uma linha em branco para terminar."<<endl;stringlinha;intnumeroAluno=1;do{cout<<"Aluno "<<numeroAluno<<": ";numeroAluno++;getline(cin,linha);if(linha!="")alunos.push_back(linha);}while(linha!="");cout<<"Foram digitados os nomes de "<<alunos.size()<<" alunos."<<endl;for(inti=0;i<alunos.size();++i){cout<<"Aluno "<<(i+1)<<": "<<alunos[i]<<endl;}cout<<"Fim."<<endl;}
Exemplo de saída:
C> alunos
Digite um nome de aluno por linha, e deixe uma linha em branco para terminar.
Aluno 1: Jose Ribamar
Aluno 2: Joaquim Manuel
Aluno 3: Bruno Henrique
Aluno 4: Carlos Eduardo
Aluno 5:
Foram digitados os nomes de 4 alunos.
Aluno 1: Jose Ribamar
Aluno 2: Joaquim Manuel
Aluno 3: Bruno Henrique
Aluno 4: Carlos Eduardo
Fim.
PhoenixWings
Hum é mesmo bastante parecido com o Java. Mas o que é aquele método push_back ? funciona como o método add do ArrayList ?
E
entanglement
Sim senhor, é igualzinho.
PhoenixWings
Muito obrigado por toda a atenção. Só mais uma pergunta: qual é o nome desse tipo especial de Array em C++ parecido com ArrayList ?
E
entanglement
Olhe na linha 7 do programa.
PhoenixWings
ah ta
ViniGodoy
Na verdade, é mais fácil aprender a usar o vector e o string do que aprender a como manipular os arrays de chars. É claro que cedo ou tarde você vai precisar aprender a mexer com os arrays também (e ponteiros, e memória e toda aquela coisa tenebrosa)… mas, já que você usa C++, não custa começar pelo mais fácil.