Ir ao conteúdo
  • Cadastre-se

C++ cadeias de caracteres não compilam


kiloton

Posts recomendados

Olá, estava aprendendo sobre cadeias de caractere, no entanto quando fui executar um dos códigos da apostila me deparei com um erro no compilador, poderiam me explicar sobre ele?

 

ps: me desculpem a má formatação, esses são meus primeiros 10 minutos no fórum.

 

#include<iostream>
#include<array>

using namespace std;

int main(){

    array<char, 10> x;
    cout << "Digite o seu primeiro nome: ";
    cin >> x;
    cout << "A terceira letra do seu nome é: " << x[2] << endl;

    return 0;
}

image.thumb.png.aa3f3724d4f2bab449c9a36c7dd71d75.pngimage.thumb.png.f4125d3faa3f233cf726b730553fcfcc.png

Link para o comentário
Compartilhar em outros sites

1 hora atrás, kiloton disse:

Olá, estava aprendendo sobre cadeias de caractere, no entanto quando fui executar um dos códigos da apostila me deparei com um erro no compilador, poderiam me explicar sobre ele

 

O compilador está tentando dizer que o que escreveu está errado... cin >> coisa quer dizer que coisa deve ser de um tipo para o qual o operador '>>' esteja definido. Isso é o "no match for operator >>"

 

Só que no seu caso x é array<char> e não existe essa definição (overload é o nome em geral).

 

O que você procura é uma string e não um array tipo std::array<> que foi o que escreveu. Se esta tentando aprender sobre cadeias de caracteres use as tais cadeias de caracteres, como std::string em C++ ou C-style char*  e não array<> que tem outro propóstio

 

3 diferentes animais:

 

Rode esse programa em sua máquina

 

#include <array>
#include <iostream>
using namespace std;

int main(void)
{
    const char* c_style = "string";
    string cpp_style = "string";
    array<char,20> cpp_array_style = { 's','t','r','i','n','g'};

    cout << "C-style string: " << c_style << endl;
    cout << "C++ classe string: " << cpp_style << endl;
    cout << "C++ array-style string: ";
    for ( auto letra : cpp_array_style ) cout << letra;
    cout << endl;
}

 

 e deve ver

 

ch$ g++ -o tst main.cpp
ch$ ./tst
C-style string: string
C++ classe string: string
C++ array-style string: string
ch$ 

 

 

 

Link para o comentário
Compartilhar em outros sites

Opa, Neto! entendi toda a questão do overload, obrigado! Quanto a questão das cadeias de caracteres o próximo tópico do livro é string, mas tinha essa parte de arrays que eu queria ver a um tempo dai fiquei empolgado, mas valeu! jaz aqui a última versão do código:

#include<iostream>
#include<array>

using namespace std;

int main(){

    char x[15];
    cout << "Digite o seu primeiro nome: ";
    cin >> x;
    cout << "A terceira letra do seu nome é: ";
    cout << x[2] << endl;

    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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