Why doesn't my c++ code work? [closed] - c++

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 8 years ago.
Improve this question
What have I done wrong with the following code?
#include <iostream>
using namespace std;
main ()
{
int a;
int b;
int sum;
cout << "Enter first number \n";
cin >> a;
cout << "Enter second number \n";
cin >> b;
sum = a+b;
cout << "The sum of both numbers is" << sum << endl;
return 0;
}

Does the editor you are using tells errors, so the code is not executing? Or som exception rises? Or it is executing but nothing is shown? Please specify your problem accurately.
Anyway, you must use
int main ()
instead of
main()
Notice that your code returns a value. The last line of you code is:
return 0;
Thus, you must specify an int return type.

Check your initial lines with this.
#include <iostream>
using namespace std;
int main ()
{

Related

Using cout << endl; between functions fixes code [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 2 years ago.
Improve this question
I have simplified the code to get rid of unrelated objects. This is my code:
#include <iostream>
#include <fstream>
using namespace std;
fstream asdf;
int input;
void import_image(){
asdf.seekg(0);
char character;
for(int k = 0; k < 40; k++){
asdf.get(character);
input = (unsigned int)(unsigned char)character;
}
}
void print_hello_world(){
for(int rows; rows <= 27; rows++){
cout << "hello world" << endl;
}
cout << "goodbye.";
}
int main(){
asdf.open("abc.txt", ios::binary | ios::in);
cout << asdf.is_open() << endl;
import_image();
//cout << endl;
print_hello_world();
return 0;
}
Running this code results only in
1
goodbye.
--------------------------------
Process exited after 0.1511 seconds with return value 0
however removing double slash (simply adding cout << endl;) fixes everything. I have no idea why it happens and would like to now why is it so. I know that variable "rows" has no value, but why does printing a new line fix everything?
The new "endl"
is a great sign
that what you see,
is called "UB".
Your program has Undefined Behavior (UB) because your int rows that you use for the loop iterations is uninitialized.
By UB definition anything may happen. Activate all (sane) compiler warnings to find errors like this earlier in your development process.
Undefined behavior yield working programs by completely random changes (for example the addition of std::endl) but in the end it's undefined behavior.

Printing Quote Through Loops C++ [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 4 years ago.
Improve this question
my knowledge of c++ is pitiful. I've been stumped on this simple problem for a long time and would just a point to the right the direction. The basis of the program is to have the user chose a number 1-5 and then based on their decision print out a quote that many times. So if they chose the number 4 it will display the quote 4 times.
Here is what I have so far:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int PickNumber()
{
int i;
cout << "Please Enter a Number From 1 to 5:";
cin >> i;
for (int j = 0; j < i; j++)
{
cout << "Congrats!";
}
return i;
}
int main()
{
_getch();
return 0;
}
Just to add an answer to this question already solved by #molbdnilo, #Rietty and #Gox: the PickNumber() function is not called in the main function.
The PickNumber() call just needs to be added to the main function.
int main() {
PickNumber();
return 0;
}

Similar code. One works, one crashes. Why? [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 4 years ago.
Improve this question
I was working on a problem for Project Euler using C++ in Code::Blocks 10.05 and found my program to be crashing in a strange place: the initialization. Here is a code snippet that reproduces the problem.
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
vector<deque<uint32_t> > f;
int main()
{
deque<uint32_t> p;
deque<uint32_t>::iterator dit1,dit2;
p.push_back(0);
p.push_back(1);
f.push_back(p);
cout << f.back().size() << endl;
cout << "f= ";
for(dit1==f.back().begin();dit1!=f.back().end();dit1++) cout << *dit1 << " ";
cout << "Checkpoint" << endl;
return 0;
}
Before posting here, I tried a test program to see if I could figure out the problem.
#include <iostream>
#include <deque>
#include <vector>
using namespace std;
int main(void)
{
uint64_t i;
deque<uint32_t> d;
vector<deque<uint32_t> > vd;
deque<uint32_t>::iterator it;
for(i=1;i<=5;i++) d.push_back(i);
vd.push_back(d);
for(it=vd.back().begin();it!=vd.back().end();it++) cout << *it << " ";
return 0;
}
The first program crashes while the second correctly reproduces the deque. Besides variable names, the only major difference I see is the first program uses a global variable and the test program uses a local variable. So why does the first program crash in the for loop while the second does not?
You used == instead of = in the for loop in the first program.

for loop result 0 in C++ [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 5 years ago.
Improve this question
I am a newbie in C++, I started to learn coding in C++ two weeks ago. Why does my code below always give me result 0 when I build and run? Please help
# include <iostream>
# include <string>
using namespace std;
int main ()
{
int input = 1;
cout << "input your number : \n";
cin >> input;
int faktorial = 1;
for(int i=1;i<=input;i++)
{
faktorial = faktorial * i;
}
cout << "factorial value from number " << input << " is " << faktorial << endl;
}
Your code works: https://ideone.com/CYFaxo
I suspect your problem is, you are looking at program exit code. When you don't return any value from main, program exit code is 0 (this is special case, and only non-void function where you may leave the return statement out), which conventionally means success (non-zero exit code usually indicates some kind of error, by convention).
Try to find the program output from your IDE, it should have the correct printout.

Can't Print String Array Element [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 8 years ago.
Improve this question
Whenever I try to run this program it returns an error saying:
no operator "<<" matches these operands
Also note that the program only runs into this problem in the getChoice() function.
#include <iostream>
#include "utilities.h"
using namespace std;
int getChoice(string inChoices[]){
int numOfChoices = sizeof(inChoices) / sizeof(inChoices[0]);
string x = inChoices[0];
string y = inChoices[1];
cout << x << endl << y << endl;
return numOfChoices;
}
int main()
{
string choices[2] = { "Happy Day", "Even Better Day" };
cout << utilities::getChoice(choices) << endl;
cout << endl << sizeof(choices) / sizeof(choices[0]) << endl;
}
You need also to include the string header:
#include <string>
You need to #include <string>
And your calculation of numOfChoices in getChoice() is wrong, since the parameter inChoices is actually a "pointer to string" instead of "array of strings".