Guest Fabiano Góes Postado Março 25, 2008 Denunciar Share Postado Março 25, 2008 por favor,sou programador Delphi e estou começando a programar com c++,estou com algumas duidas que fiaria muito grato se alguém puder me ajudar,estou abrindo um arquivo .txt com um layout de 160 posições.este arquivo tem 9426 linhas, porem com este código só consigo ler a primeira linha,#include <iostream> #include <fstream> #include <string> #include <conio.h> using namespace std; int main(){ char linha[160]; ifstream leitura; leitura.open("237.txt", ofstream::binary); if(!leitura.is_open( )) { cout << "Não foi possível abrir arquivo!\n"; leitura.clear( ); getch(); } system("cls"); cout << "arquivo aberto com sucesso!!!\n\n"; getch(); while (leitura) { leitura.getline(linha, 160); cout << linha << endl; getch(); } leitura.close(); return 0; }alguém pode me dar uma dica de como percorrer o arquivo todo ?toda dica será bem vinda.desde já quero agradecer a todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest quitZAUMMM Postado Março 25, 2008 Denunciar Share Postado Março 25, 2008 veja esse link te ajudará bastante: Manipulação de arquivos txtveja um simples exemplo q fiz para ler um txt:char lertxt() { FILE *p; char c; int x; if ((p = fopen("arq.txt","r")) == NULL) { printf("Erro! Impossivel abrir o arquivo!\n"); exit(1); } c = getc(p); while (!feof(p)) { printf("%c",c); c = getc(p); } printf("\n\n"); fclose(p); } main(){ lertxt(); getch(); return (0); }[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabiano Góes Postado Março 25, 2008 Denunciar Share Postado Março 25, 2008 quitZAUMMM, primeiro obrigado pela atenção,seu exemplo funcionou, mais como estou estudando a manipulação de arquivos com c/c++ resolvi fazer mais um teste,como o layout do arquivo que estou lendo é de 160 caracteres com espaços, quero ler linha por linha(char str[160]).seguindo a dica do link que você me passou fiz um teste porem com este código ele está lendo apenas a primeira linha até que chega ao fim do arquivo, ou seja fica repedindo a mesma linha:#include <iostream> #include <conio.h> using namespace std; char lertxt() { FILE *p; char str[160]; int x; if ((p = fopen("237.TXT","r")) == NULL) { printf("Erro! Impossivel abrir o arquivo!\n"); exit(1); } fscanf(p,"%[^\n]s", str); while (!feof(p)) { fscanf(p,"%[^\n]s", str); cout << str << endl; getch(); } printf("\n\n"); fclose(p); } int main(){ lertxt(); getch(); return (0); }não sei se fui claro :unsure: , mais se você puder me dar uma dica agradeço!!! :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest quitZAUMMM Postado Março 25, 2008 Denunciar Share Postado Março 25, 2008 olha quando c le strings prefira o fgets, assim:#include <stdio.h> #include <conio.h> char lertxt() { FILE *p; char str[160]; int x; if ((p = fopen("237.txt","r")) == NULL) { printf("Erro! Impossivel abrir o arquivo!\n"); exit(1); } fgets(str,160,p); while (!feof(p)) { printf("%s", str); fgets(str,160,p); } printf("\n\n"); fclose(p); } int main(){ lertxt(); getch(); return (0); }espero ter ajudado;!! []'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Fabiano Góes
por favor,
sou programador Delphi e estou começando a programar com c++,
estou com algumas duidas que fiaria muito grato se alguém puder me ajudar,
estou abrindo um arquivo .txt com um layout de 160 posições.
este arquivo tem 9426 linhas, porem com este código só consigo ler a primeira linha,
alguém pode me dar uma dica de como percorrer o arquivo todo ?
toda dica será bem vinda.
desde já quero agradecer a todos.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.