Como substituir caracteres por variaveis em fixeiros em c++

ZePestao

Power Member
Bem, a minha duvida está no topico.
Tenho um fixeiro .txt, com uns caracteres especiais, a minha ideia é substitui-los por variaveis e imprimir o .txt alterado no ecran, como fazer?
 
Podes ir lendo o ficheiro carácter a carácter e verificar se aparece esses caracteres especiais, se for um desses caracteres especiais imprimes no ecrã as tais variáveis, se não for imprimes os caracteres do ficheiro.
 
Aqui fica um exemplo de como se pode percorrer o ficheiro caracter a caracter, usando a biblioteca fstream (claro que a sugestão do Baderous é boa, estou a postar isto para ficares com mais que uma maneira).

Código:
[SIZE=2][COLOR=#0000ff]#include [/COLOR][/SIZE][SIZE=2][COLOR=#800000]<fstream>[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]#include [/COLOR][/SIZE][SIZE=2][COLOR=#800000]<iostream>[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]using [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]namespace [/COLOR][/SIZE][SIZE=2][COLOR=white]std;[/COLOR][/SIZE]
 
[SIZE=2][COLOR=#0000ff]int [/COLOR][/SIZE][SIZE=2][COLOR=white]main()[/COLOR][/SIZE]
 

[SIZE=2]{[/SIZE][INDENT][SIZE=2][COLOR=#008000]//variavel que irá conter os caracteres lidos do ficheiro[/COLOR][/SIZE][/INDENT]

[INDENT][SIZE=2][COLOR=#0000ff]char[/COLOR][/SIZE][SIZE=2] ch;[/SIZE][/INDENT]

[INDENT][SIZE=2][COLOR=#008000]//abrir o ficheiro[/COLOR][/SIZE][/INDENT]

[INDENT][SIZE=2]ifstream ReadFile ([/SIZE][SIZE=2][COLOR=#800000]"c:\\cpp.txt"[/COLOR][/SIZE][SIZE=2]);[/SIZE][/INDENT]

[INDENT][SIZE=2][COLOR=#008000]/*executar enquanto a variavel que está a percorrer o ficheiro [/COLOR][/SIZE][/INDENT]

[INDENT][SIZE=2][COLOR=#008000]não recolher o caracter de final [/COLOR][/SIZE][SIZE=2][COLOR=#008000]de ficheiro*/[/COLOR][/SIZE][/INDENT]

[INDENT][SIZE=2][COLOR=#0000ff]while[/COLOR][/SIZE][SIZE=2] ((ch = ReadFile.get()) != EOF)[/SIZE][/INDENT]

[INDENT][SIZE=2]{ [/SIZE][INDENT][SIZE=2]cout << ch; [/SIZE][/INDENT]
[SIZE=2]}[/SIZE]
[/INDENT]

[INDENT][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][SIZE=2] 0;[/SIZE][/INDENT]
[SIZE=2]}[/SIZE]

O que este programa faz é simplesmente usar a função get() (que recolhe um caracter apenas da console input) associada à stream (ficheiro) que estás a usar (neste caso o ficheiro que usei foi c:\cpp.txt). Ou seja, a console input, neste caso, é o teu ficheiro.

Vá, cumps
 
Última edição:
Back
Topo