Ho un problema con il programma che sto cercando di codificare. È solo un programma per console Windows e sono molto nuovo in C++. È solo il mio quarto programma.Il confronto con risultati letterali stringa in un comportamento non specificato?
Il problema che sto avendo è che quando eseguo il mio programma non ho errori, ma un sacco di avvertimenti che dicono "il confronto con la stringa di risultati letterali nel comportamento non specificato" nelle righe che mi metterà in evidenza qui di seguito.
Quando il programma viene eseguito anziché aggiungere i numeri che desidero, mi dà un numero enorme a caso, indipendentemente da ciò che ho inserito per i miei input.
Ecco il codice:
#include <iostream>
using namespace std;
int main()
{
int hold;
int i;
int n;
i = 6;
int result;
int * price;
char items[100][100];
if (items == 0)
cout << "No items can be stored";
else
{
for (n=0; n<i; n++)
{
cout << "Item#" << n << ": ";
cin >> items[n];
}
cout << "\nYou Entered: \n";
for (n=0; n<i; n++)
cout << items[n] << ", ";
}
for (n=0; n<i; n++)
{
if (items[n] == "ab"){
price[n] = 2650;
}
else if (items[n] == "ae"){
price[n] = 1925;
}
else if (items[n] == "ie"){
price[n] = 3850;
}
else if (items[n] == "bt"){
price[n] = 3000;
}
else if (items[n] == "pd"){
price[n] = 2850;
}
else if (items[n] == "ga"){
price[n] = 2600;
}
}
for (n=0; n<i; n++)
{
result = result + price[n];
}
cout << "\nTotal gold for this build: " << result;
cin >> hold;
return 0;
}
Ogni aiuto è apprezzato. C'è probabilmente qualcosa di grosso in cui ho sbagliato. I nomi nelle istruzioni if sono tutti segnaposto e aggiungerò molto altro se affermazioni quando potrò farlo funzionare con la nuda 6, che è ciò di cui ha bisogno per funzionare.
'if (items == 0)' che non ha alcun senso.Non stai allocando dinamicamente 'item', è una variabile stack. Quel paragone non sarà mai vero. – Praetorian