0Pricing
C++ Academy · Aula

Fluxo de cadeias stringstream para análise

Use std::stringstream para tokenizar e analisar texto em valores tipados.

Fluxo de cadeias stringstream para análise é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.

O que é uma stringstream?

std::stringstream envolve uma cadeia de caracteres em uma interface de fluxo de entrada e saída. Leia e escreva nela com >> e <<, como se fosse cin ou cout.

#include <sstream>
std::stringstream ss;

Construindo cadeias de caracteres com stringstream

Use-a para construir cadeias de caracteres complexas a partir de tipos diferentes. Chame .str() para obter o resultado.

std::stringstream out;
out << "User: " << name << ", Age: " << age;
std::string result = out.str();

Analisando com stringstream

Inicialize-a a partir de uma cadeia de caracteres e extraia valores com >>. Ela separa os elementos usando espaços em branco.

std::stringstream in("42 3.14 hello");
int i; double d; std::string s;
in >> i >> d >> s;

Lendo uma linha em elementos

Combine getline com stringstream para separar uma linha por vez em elementos.

std::string line = "1 2 3 4 5";
std::stringstream ss(line);
int n;
while (ss >> n) {
    std::cout << n * n << " ";
}
// 1 4 9 16 25

Dividindo por um delimitador

Passe um delimitador para getline em um stringstream para dividir por vírgulas, ponto e vírgulas ou qualquer caractere.

std::string csv = "apple,banana,cherry";
std::stringstream ss(csv);
std::string fruit;
while (std::getline(ss, fruit, ',')) {
    std::cout << fruit << "\n";
}

istringstream e ostringstream

Há três variantes:

  • std::istringstream — somente leitura
  • std::ostringstream — somente escrita
  • std::stringstream — leitura e escrita

Use a variante mais específica para manter o código claro.

Verificando erros de análise

Se a extração falhar (por exemplo, por causa de um tipo incorreto), o fluxo define um sinalizador de falha. Verifique !ss ou ss.fail() após a extração.

std::stringstream ss("not_a_number");
int x;
if (!(ss >> x)) {
    std::cout << "Parse failed";
}

Redefinindo um stringstream

Para reutilizar um stringstream, limpe o estado e o conteúdo.

std::stringstream ss;
ss << "first";
ss.str("");        // clear contents
ss.clear();        // clear flags
ss << "second";

Número para cadeia de caracteres

Para conversões simples, std::to_string é mais curto do que usar um stringstream.

std::string s = std::to_string(42);   // "42"
std::string p = std::to_string(3.14); // "3.140000"

Cadeia de caracteres para número sem fluxos

std::stoi, std::stod e std::stoll analisam números a partir de cadeias de caracteres e lançam uma exceção quando a entrada é inválida.

int n = std::stoi("42");
double d = std::stod("3.14");
// std::stoi("xyz") throws std::invalid_argument

C++17 std::from_chars

Para obter a máxima velocidade, std::from_chars em <charconv> analisa sem exceções nem alocações. É ideal para trechos críticos de desempenho.

Verificação rápida

Qual cabeçalho deve ser incluído para usar std::stringstream?

Recapitulação

std::stringstream transforma cadeias de caracteres em fluxos para facilitar a análise e a formatação. Combine-o com std::getline para dividir por delimitadores. Em casos simples, prefira std::to_string e std::stoi.

Perguntas Frequentes

A aula “Fluxo de cadeias stringstream para análise” é grátis?

Sim — o texto completo de “Fluxo de cadeias stringstream para análise” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.

O que vou aprender em “Fluxo de cadeias stringstream para análise”?

Use std::stringstream para tokenizar e analisar texto em valores tipados. Você pratica C++ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C++ Academy?

Nenhuma experiência prévia é necessária. C++ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Fluxo de cadeias stringstream para análise”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C++ Academy?

Sim. Cada aula de C++ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. std::string versus matrizes de caracteres no estilo C
  2. Operações com cadeias: concatenação, substr, busca e substituição
  3. Fluxo de cadeias stringstream para análise
  4. Conversões de cadeias: to_string e stoi
← Voltar para C++ Academy