Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica
La Fondazione Chips-IT ha presentato a Pavia il piano strategico 2026-2028 per rafforzare l'ecosistema italiano dei semiconduttori. Con un focus su ricerca, design, talenti e infrastrutture, la Fondazione punta a consolidare il ruolo dell'Italia nel Chips Act europeo, sostenendo innovazione, collaborazione industriale e sovranità tecnologica.
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud
Al Museo Alfa Romeo di Arese, Nutanix ha riunito clienti, partner ed esperti per .Next On Tour Italia e per mostrare come l’infrastruttura hybrid multicloud possa diventare il fondamento dell’innovazione, con una piattaforma capace di unificare applicazioni tradizionali, moderne architetture cloud-native e nuovi scenari basati sull’intelligenza artificiale
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti
Il Lenovo LOQ 15i Gen 10 (15IRX10) offre prestazioni convincenti grazie al Core i7-13650HX e alla RTX 5060 Laptop a 100W, mantenendo un prezzo competitivo tra 1100 e 1300 euro. Costruzione solida, buon display e ampia espandibilità lo rendono una scelta equilibrata per chi cerca un notebook gaming accessibile ma moderno.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-03-2009, 10:19   #1
Aenima1891
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;
}
Riesco cosi a stampare la prima stringa, ma poi il programma si blocca
Cosa sbaglio? (non sono molto pratico nella manipolazione dei files)

Grazie
thanks
Aenima1891 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2009, 11:26   #2
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Credo sia molto più semplice usare un vector di string, e l'operatore >> di ifstream...
sei obbligato ad usare char* e le operazioni del puntatore (seek, peek, etc)?
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2009, 11:59   #3
Aenima1891
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
Aenima1891 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2009, 12:13   #4
Aenima1891
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;
}
questa versione è molto semplificata ma funziona.

e se invece volessi fare come detto prima? senza usare MAXSIZE?
Aenima1891 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2009, 14:39   #5
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
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!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica Fondazione Chips-IT, l'Italia alla riscossa nei ...
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud Nutanix: innovazione, semplicità e IA al ...
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il n...
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Intel, la multa UE del 2009 ridotta ai m...
ECOVACS MINI e Roborock Q7 M5 lavano e a...
Motorola punta sulla fascia alta: sta ar...
PCIe 4.0, fino a 2 TB e dimensioni di un...
Apple ha in programma il lancio di due n...
La gamma POCO si aggiornerà ancor...
Qualcomm rafforza la strategia RISC-V co...
Razer svela BoomSlang 20th Anniversary, ...
Accordo miliardario con OpenAI, diffida ...
GPT-5.2 è la risposta di OpenAI a...
NVIDIA H200 in Cina, ma è solo un...
Addio allo Studio Gainax, dopo 42 anni c...
Milly Alcock è Supergirl nel prim...
Veeam accelera sulla data resilience: da...
Klarna arriva su Apple Pay anche in Ital...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:34.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v