Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-01-2008, 17:11   #1
ciuaz!!!
Senior Member
 
Iscritto dal: Sep 2003
Messaggi: 572
[C++] Domanda su DevC++, come leggere da file input?

Ciao ragazzi, ho un problema: ho creato un programmetto sotto Linux, che legge da un file di testo un numero (es: 234. il punto segnala la fine) e me lo trasforma in binario.

...ora vorrei fare la stessa cosa sotto Windows e utilizzando DevC++, sapete come fare?
Quando eseguo il programma mi esce solo il file di output, che dovrebbe contenere -appunto- la trasformazione, ma NON RIESCO A FARGLI PRENDERE L'INPUT!

Per precisione, questo è il programma:

#include<iostream>
#include<fstream>
using namespace std;

int main()

try //apertura file

{
ifstream IN ("input");
ofstream OUT ("output");
if(!IN || ! OUT)
throw (0);

char x,b;
int r,n,a;
n=0;
IN>>x; // legge dal file
while (x != '.') {
n= (x-48)+n*10;
IN>>x;
}

IN.close();

while (n>0){
r=n%2;
b=r+48;
OUT<< b;
n=n/2;
}


OUT.close();


}
catch (int x) {cout<<"problemi con i file"<<x<<endl;}
ciuaz!!! è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2008, 23:28   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Prima di tutto non è corretta la verifica dell'errore che fai. IN e OUT non possono essere NULL:
http://www.cplusplus.com/reference/i.../ifstream.html
La verifica dell'errore di apertura si fa con il membro fail.

A prima vista non vedo errori particolari...sicuro che ci sia il file "input" ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 12:00   #3
ciuaz!!!
Senior Member
 
Iscritto dal: Sep 2003
Messaggi: 572
Quote:
Originariamente inviato da cionci Guarda i messaggi
Prima di tutto non è corretta la verifica dell'errore che fai. IN e OUT non possono essere NULL:
http://www.cplusplus.com/reference/i.../ifstream.html
La verifica dell'errore di apertura si fa con il membro fail.

A prima vista non vedo errori particolari...sicuro che ci sia il file "input" ?
Io ho fatto solo questa parte del programma

char x,b;
int r,n,a;
n=0;
IN>>x; // legge dal file
while (x != '.') {
n= (x-48)+n*10;
IN>>x;
}

IN.close();

while (n>0){
r=n%2;
b=r+48;
OUT<< b;
n=n/2;
}

tutto il resto è del prof quindi non saprei dirti, è la prima volta che tocco il C++

Cmq il file input c'è, è nella stessa directory di questo programmetto. Sotto linux mi bastava creare un input.txt che aprivo col KATE, ci scrivevo ad esempio "328.", mi veniva fuori il file output che -sempre con KATE- conteneva la giusta sequenza di 1 e 0.

Ma sotto windows? Boh... mi hanno detto di eseguirlo dalla shell (start esegui cmd) però nel file di output non c'è scritto nulla..
ciuaz!!! è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 12:02   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Attento che su Windows il notepad ti mette automaticamente l'estensione txt ai file, non vorrei che il tuo avesse l'estensione
In tal caso non te lo aprirebbe.

Digli al professore che ha sbagliato Professore universitario o delle superiori ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:07   #5
ciuaz!!!
Senior Member
 
Iscritto dal: Sep 2003
Messaggi: 572
Universitario!


E questo è un esercizio che ci ha dato da fare per casa e da consegnare lunedì
Però alla fine funziona...

Comunque ora dò una controllata al file, ti faccio sapere.

edit: è vero, il file ha l'estensione txt (lo vedo dalla shell) ma come si toglie :look:

edit 2: VITTORIAAAAAAAA CE L'HO FATTA
ho preso il file di output che ho rinominato in input e ora va !!!

Ultima modifica di ciuaz!!! : 19-01-2008 alle 13:23.
ciuaz!!! è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:46   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Il modo corretto per il controllo dell'errore, mantenedo la struttura che ha usato lui con l'eccezione (che a me sinceramente non piace per niente):

ifstream IN ("input");
ofstream OUT ("output");
if(IN.fail() || OUT.fail())
throw (0);

Poi mai avrei dato un nome maiuscolo a quelle variabili...insomma...in bocca al lupo
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Scopri i limiti nascosti di Gemini: Goog...
Intel cambia tutto (di nuovo): chi entra...
La sorpresa di IAA Mobility è Xyt...
Le vetture elettriche Opel GSE: Mokka GS...
Star Wars: Knight of the Old Republic Re...
Scoperta un'enorme rete IPTV da pi&ugrav...
Anche Life is Strange diventerà u...
QSAN presenta la nuova serie XN1 di NAS ...
Abbiamo visto in anteprima nuova Renault...
Come ricaricare i veicoli elettrici sino...
Microsoft annuncia nuovi servizi azienda...
Roborock QV 35S spazza via lo sporco: po...
The Last of Us: arriva il primo Emmy per...
Firefox abbandona Linux a 32 bit: fine d...
Reti mobili italiane: chi vince e chi pe...
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: 06:38.


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