Whats wrong with the code

closed account (EwCjE3v7)
Whats wrong with the code?
My friend sent it to me.
works for him

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
using namespace std;
int main() 
{
	const int max_items = 10;

	string inventory[max_items];
	int numitems = 0;
	inventory[numitems++] = "sword";
	inventory[numitems++] = "shield";
	inventory[numitems++] = "Mana Potion";
	cout << "Your items: " << endl;
	for (int i = 0; i < numitems; i++)
	cout << inventory[i] << endl;
	cout << "You trade your sword for a great sword!" << endl;
	inventory[0] = "great sword";
	cout << "You're items: " << endl;
	for (int i = 0; i < numitems; i++)
	cout << inventory[i] << endl;
	cout << "You found an item! It's a Health Potion!" << endl;
	if (numitems < max_items) 
	{
		inventory[numitems++] = "Health Potion"; cout << "You took the item!" << endl;
	}
	else 
	{
		cout << "You're carrying too many items." << endl;
	}
	cout << "Your items: " << endl;
	for (int i =0; i< numitems; i++)
	cout << inventory[i] << endl;
	return 0;
}
Last edited on
Whats wrong with the code?

I works for me too. I didn't spot any error but you should use std::vector instead of string array. Because if numitems>=max_items, the program will crash

1
2
3
4
5
6
7
vector<string> inventory; // create vector of strings
inventory.push_back("sword"); // add item to vector
// ...
// get vector size (instead of numitems) : inventory.size();
for(int i=0;i<inventory.size();i++)
    cout <<inventory[i]<<endl;
// ... 
Last edited on
closed account (EwCjE3v7)
I donno whats the problem it dosnt seem to work for me
this is what i get for problem

1
2
3
4
5
6
1>          c:\program files (x86)\microsoft visual studio 11.0\vc\include\ostream(502): or       'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_streambuf<_Elem,_Traits> *)'
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]


Null we are also using different compilers ..and also he writes code in notepad and i write it in visual studio....
Last edited on
I don't see any issue with the code either.
What problem are you having?
"doesn't seem to work" is not very informative. Does it compile? or it crashes when you run it?
closed account (EwCjE3v7)
Dosnt compile in visual studio..console never comes up and it says would u like to run previous program
closed account (EwCjE3v7)
This problem..when i debug
1
2
3
4
5
6
1>          c:\program files (x86)\microsoft visual studio 11.0\vc\include\ostream(502): or       'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_streambuf<_Elem,_Traits> *)'
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
You didn't include the string header.

 
#include <string>  

#include <string>
closed account (EwCjE3v7)
Thanks guys it worked ..in my friends compiler u dont need to include it
Thanks all
Last edited on
Topic archived. No new replies allowed.