Ir ao conteúdo

Posts recomendados

Postado

Galera alguem me ajuda por favor, eu recebo um arquivo.txt imenso eu tenho que ler ele e trocar todos os " ; " por "|" eu usei esse logica mas ele não compila e quando compila ele não grava no arquivo txt. alguem me ajuda pf 😕

 

#include <iostream>
#include <fstream>

using namespace std;
 
string substituir (string palavra, string a, string b)
{
   
    string kkk = "";
    for(int i = 0 ; i <= palavra.length() ; i++)
    {
        for(int j = 0 ; j <= palavra.length() - i ; j++)
        {
            kkk = kkk + palavra[j];
            if(kkk == a)
            {
                for(int h = 0 ; h <= j ; h++)
                {
                    palavra[h] = b[h];
                }
            }
        }
    }
    return palavra;
}
 
int main()
{
    ifstream arquivo;
    ofstream arquivox2;
    
    arquivo.open("matheus.txt"); // abre arquivo p leitura
    arquivox2.open("arquivox2.txt"); // abre arquivo p escrita

    
    string linha;
    
            
    if (arquivo.is_open() && arquivox2.is_open())
    {
        while (getline(arquivo,linha)) 
        {
            if(linha = ";")
            {
                substituir(linha, ";", "|");
                arquivox2 << linha <<endl;
            }
                
                
            
                
            
            

        }
    }
    
    
    
    
    
    
    return 0;
}

  • Curtir 1
Postado

@MatheusTITributos     seu código está bom , mas você está pegando uma linha do arquivo e comparando com um caractere e com aspas duplas , por isso da erro , então seu código poderia ser assim  :

#include <conio.h>
#include <string>  /* precisa para trabalhar com strings */
#include <iostream>
#include <fstream>
#include <ctype.h>

using namespace std;

string substituir (string palavra, string a, string b)
{

    string kkk = "";
    for(int i = 0 ; i <= palavra.length() ; i++)
    {
        for(int j = 0 ; j <= palavra.length() - i ; j++)
        {
            kkk = kkk + palavra[j];
            if(kkk == a)
            {
                for(int h = 0 ; h <= j ; h++)
                {
                    palavra[h] = b[h];
                }
            }
        }
    }
    return palavra;
}

int main(){
    ifstream arquivo;
    ofstream arquivox2;

    arquivo.open  ("matheus.txt"  );                /* abre arquivo p leitura                 */
    arquivox2.open("arquivox2.txt", ofstream::app); /* abre arquivo p escrita ofstream para   */
                                                    /* não sobrescrever o que já está escrito */
    char letra;

    if (arquivo.is_open() && arquivox2.is_open())
    {
        while (arquivo.get(letra))                  /* pega uma letra de cada vez                        */
        {
            if(letra == ';')                        /* compara a letra pegada no arquivo                 */
            {
                /*substituir(linha, ";", "|");*/
                letra = '|';                        /* substitui o ponto_e_virgula por esse caractere  | */
            }
            arquivox2<<letra;              /* gravar o caractere no arquivo */
            cout<<letra;                       /* Imprime o caractere na tela     */
        }
    }
    arquivo.clear();   /* reseta o objeto escrita     */
    arquivo.close();   /* fecha  o arquivo de escrita */
    arquivox2.clear(); /* reseta o objeto leitura     */
    arquivox2.close(); /* fecha  o arquivo de leitura */
    cout<<"\n\nIsso esta Gravado No Arquivox2 . . . !"<<endl;
    cout<<"\n\n     Tecle\n"<<endl;
    getch();
    return 0;
}

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!