|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Mar 2006
Messaggi: 10
|
[C++] Leggere numeri da file di testo
salve a tutti, sto provando a leggere un file di testo contenente dei numeri ed a memorizzarli in stringhe, e successivamente mostrare queste stringhe sul monitor
questo è il mio file di testo 0b10100 0d478 0x7 0xff 11110000 e questo è il mio codice Codice:
#include <iostream>
#include <fstream>
using namespace std;
int main(void)
{
ifstream is("Numeri.txt");
int count=0;
char *str;
int position=0;
int tmp_pos = 0;
while(!is.eof()){
while(is.peek() !=' '){
tmp_pos++;
is.seekg(tmp_pos);
}
is.seekg(position);
count = tmp_pos-position+1; //+1 for '\0'
str = new char[count+1];
is.getline(str,count);
str[count] = '\0';
cout << str << endl;
position = ++tmp_pos;
is.seekg(position);
delete [] str;
}
return 0;
}
Cosa sbaglio? (non sono molto pratico nella manipolazione dei files) Grazie thanks |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Mar 2006
Messaggi: 10
|
il fatto è che volevo fare in modo di allocare dinamicamente le stringhe:
prima mi trovo il numero di caratteri count che compongono il singolo numero, e successivamente alloco la stringa di dimensione count+1 in modo da inserire anche il carattere di fine stringa \0 |
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Mar 2006
Messaggi: 10
|
Codice:
#include <iostream>
#include <fstream>
#include <string.h>
#define MAXSIZE 10
using namespace std;
int main(void)
{
ifstream is("Numeri.txt");
char str[MAXSIZE];
memset(str, 0, MAXSIZE);
while(!is.eof()){
is >> str;
cout << str << endl;
}
return 0;
}
e se invece volessi fare come detto prima? senza usare MAXSIZE? |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Scusa, ma hai realmente bisogno di leggere dentro un buffer di caratteri allocato dinamicamente? Fai molto prima a leggere usando ciò che ti offre std::string, poi alle brutte il buffer lo duplichi con strdup(buffer.c_str()).
ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:34.



















