La conversione di una riga di codice da c in c++

0

Domanda

#include <iostream>
#include <stdio.h>
using namespace std;

int item, jumlahbarang, total = 0, total_belanja = 0, uang, kembalian, sum = 1, memory[100], memory_jumlah[100];
    const char* aitem[11] = { "fillthe0","ITEM 1", "ITEM 2"};
    string repeat;
    int price1= 53000;
    int price2= 76000;

int main(){
    cout << "               | ID   | Nama Barang                     | Harga Barang |" << endl;
    cout << "               |------|---------------------------------|--------------|" << endl;
    cout << "               | 1.   | ITEM 1                          | Rp. 53000    |" << endl;
    cout << "               | 2.   | ITEM 2                          | Rp. 76000    |" << endl;

while (repeat.compare("n") != 0) {
    label:
        cout << " Input item id : ";
        cin >> item;
        memory[sum] = item;
        if (item == 1) {
            cout << " Item anda : " << aitem[1] << endl;
            cout << " How much item do you want ot buy? : ";
            cin >> jumlahbarang;
            memory_jumlah[sum] = jumlahbarang;
            sum++;
            total = price1 * jumlahbarang;
            total_belanja = total_belanja + total;
        }
        else if (item == 2) {
            cout << " Item anda : " << aitem[2] << endl;
            cout << " How much item do you want ot buy? : ";
            cin >> jumlahbarang;
            memory_jumlah[sum] = jumlahbarang;
            sum++;
            total = price2 * jumlahbarang;
            total_belanja = total_belanja + total;
        }

        cout << " Beli Lagi?(y/n)";
        cin >> repeat;
    }

    cout << "\n\n Struk Belanja\n";
    cout << " -------------\n";
    cout << " Item list : \n";
    for (int i = 1; i < sum; i++) {
        printf(" - %dx %s\n", memory_jumlah[i], aitem[memory[i]]);
    }
return 0;
}

il codice di cui sopra è un codice per la creazione di un recipt, il problema che ho è che non posso convertire" printf(" - %dx %s\n", memory_jumlah[i], aitem[memory[i]]); "da c languange in c++ , non so che codice devo usare per questo. ho provato getline, trasformandosi in cout, ancora non funziona.

da quello che so, c++ uso cout << invece di printf, ant c++ non fa uso di %d %s.

c++
2021-11-24 05:49:04
3

Migliore risposta

2

Chi l'ha detto che non è possibile utilizzare printf in c++?

Codice C :

printf(" - %dx %s\n", memory_jumlah[i], aitem[memory[i]]);

Il codice C++:

printf(" - %dx %s\n", memory_jumlah[i], aitem[memory[i]]);

L'output dovrebbe essere la stessa, perché il C++ supporta sia cout, cin e printf, scanf.

2021-11-24 06:54:40

Beh, si può utilizzare, ma stdio.h è un pericoloso merda biblioteca e deve essere evitato in C e C++ sia... quindi se C++ ti dà una migliore alternativa, utilizzare.
Lundin

@Lundin coltelli può essere piuttosto pericoloso, ma anche molto utile. Forse dovremmo vietare i coltelli e printf e linguaggi come il C, perché potrebbe essere pericoloso. Mentre sono d'accordo che printf non deve essere utilizzato in C++, non sono d'accordo che non deve essere utilizzato in C, tendo a sostenere di più per imparare a utilizzare lo strumento giusto per il lavoro.
autistic
0
cout << " - " << memory_jumlah[i] << "x " << aitem[memory[i]] << endl;

Questo dovrebbe funzionare.

2021-11-24 06:43:28
-2

c++ è un superset del c quindi, se siete di scrivere codice in c, allora è un valido codice c++ quindi non c'è bisogno di convertire in c++ come ho compilato il programma funziona perfettamente bene.

Questo è il risultato quando ho compilare questo codice con estensione c++:

1

2021-11-24 15:14:54

Il C++ non è un superset del c. Tipici esempi sono la necessità di gettare il risultato di malloc e automatico typedef per le strutture/sindacati/enumerazioni. Ci sono altre questioni come il c++ di avere ulteriori parole chiave e prive di alcuni C99 caratteristiche.
martinkunev

E ' quasi un superset del C, che il 98% del codice sorgente in C verrà compilato come C++, con poca o nessuna modifica. La sua intenzione di essere un superset del C è C++ ha avuto il suo nome.
Jeremy Friesner

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................