[C++] Come aggiungo queste funzioni in più nel programma?
Salve a tutti sono nuovo!
Ho fatto questa simpatica calcolatrice (si, sono ancora agli inizi con il c++
):
Chiedo un aiuto
perché vorrei tanto aggiungere la funzione che permette di creare un file di testo, cioè nel senso che quando si fa la serie di conti, quando si preme "X" per terminare il programma, mettere tutti i conti fatti in un file di testo.

Ho fatto questa simpatica calcolatrice (si, sono ancora agli inizi con il c++

#include
using namespace std;
int main()
{
double n1,n2,out1;
char op,i;
i='M';
cout<<"Calcolatrice di numeri v2.5"<cout<<"Istruzioni: digitare il primo numero,\nmettere l'operatore e digitare il 2 numero."< cout<<"Es.: digita il primo 123,\ndigitate l'operatore(+ - * : ),\ndigitate il secondo numero 456 e premete invio"< cout<<"L'ordine è eseguito in questo modo: 123+456=..."< cout<<"Questo programmino e\' stato creato da Mattia G. Buon calcolo! =D"< while (i=='M')
{
cout<<"Digitare i due numeri:"<cin>>n1;
cin>>op;
cin>>n2;
cout<<"\a";
switch (op)
{
case'+':
out1=n1+n2;
cout<cout< break;
case'-':
out1=n1-n2;
cout<cout< break;
case'*':
out1=n1*n2;
cout<cout< break;
case':':
out1=n1/n2;
cout<cout< break;
default:
cout<<"operatore non valido"<break;
}
cout<<"Se vuoi fare un'altro conto digita M, altrimenti digita X "<cin>>i;
cout<}
system("pause");
return 0;
}
Chiedo un aiuto

Risposte
Per scrivere su testo devi per prima cosa includere l'header fstream. A questo punto puoi creare un'istanza della classe ofstream per gestire l'output su un file. Il seguente codice scrive "Ciao mondo" su un file.
Il prossimo passo nello sviluppo di questa calcolatrice dovrebbe essere secondo me quello di dividere il tuo programma in diverse funzioni e formattare bene il codice in modo da renderlo un po' più leggibile (non che sia complicato, ma se vuoi aggiungere altre funzionalità..).
#include <fstream> using namespace std; int main() { ofstream ofs("output.txt"); if (!ofs.bad()) { ofs << "Ciao mondo!" << endl; ofs.close(); } }
Il prossimo passo nello sviluppo di questa calcolatrice dovrebbe essere secondo me quello di dividere il tuo programma in diverse funzioni e formattare bene il codice in modo da renderlo un po' più leggibile (non che sia complicato, ma se vuoi aggiungere altre funzionalità..).
Quella parte di codice devo metterlo per ogni conto, eliminando il ciclo while?
Perché se lo metto nel ciclo while, il risultato viene sovrascritto più volte, mentre vorrei trovare in qualche modo la possibilita che ogni risultato venga inserito dentro lo stesso file. Ad esempio digito:
Poi apro il file "output.txt" e vedo:
Perché se lo metto nel ciclo while, il risultato viene sovrascritto più volte, mentre vorrei trovare in qualche modo la possibilita che ogni risultato venga inserito dentro lo stesso file. Ad esempio digito:
24+56 (premo invio)
80 (risultato che viene messo nella variabile "out1")
(ora il contenuto della variabile "out1" viene messo nel file di testo "output.txt")
premo M per fare un'altro calcolo
2+2
4(risultato che viene messo nella variabile "out1" e il contenuto precedente cancellato)
(ora il contenuto della variabile "out1" viene messo nel file di testo precedentemente creato "output.txt", senza sovrascriverlo)
Poi apro il file "output.txt" e vedo:
80
4
La creazione e la chiusura del file vanno fatti una volta sola. Per cui
va prima del ciclo e
dopo.
La condizione
serve invece per sapere se il file è stato aperto correttamene, senza errori.
ofstream ofs("output.txt");
va prima del ciclo e
ofs.close();
dopo.
La condizione
!ofs.bad()
serve invece per sapere se il file è stato aperto correttamene, senza errori.