C++ program instruction
I have written this program, however when I try to compile it I get a syntax errors. I cannot find where the syntax errors are.
It should calculate number of second sound travels in difference gases, information given by user.
include <iostream>
#include <fstream>
using namespace std;
int main()
{
int choice, gascount=0,i,sec;
string gas[10],type;
double speed[10],speedd;
ifstream input;
input.open("input.txt");
if(input.fail())
cout<<"file did not open please check it\n";
cin >> gas[gascount++];
while(input)
{
input>>speed[gascount];
input>>gas[++gascount];
}
while(choice!=5)
{cout<<"Choose gas would you like to use\n";
cout<<"1 CarbonDioxide\n";
cout<<"2 Air\n";
cout<<"3 Helium\n";
cout<<"4 Hydrogen\n";
cout<<"5 Exit\n"; //5th cout for exiting program
cin >>choice;
switch(choice) //use swich for user selection of gases
{case 1: type="CarbonDioxide";
break;
case 2: type="Air";
break;
case 3: type="Helium";
break;
case 4: type="Hydrogen";
break;
case 5: system("exit");
default: printf("Illegal input: Try Again\n");
}
i=0;
for(i=0;i<gascount;i++) //loop for number of seconds
if(type.compare(gas[i])==0) //speed travel in gases
{speedd=speed[i];
i=gascount+1;
开发者_开发百科 }
cout<<"You chose "<<type<<endl;
cout<<"how many seconds did the sound travel? ";
cin>>sec;
while(sec<0||sec>30)
{cout<<"must me between 0 and 30\n";
cout<<"how many seconds did the sound travel? ";
cin>>sec;
}
cout<<"The speed of sound through "<<type<<" is "<<speedd*sec*10.<<endl;
}
input.close();
system("pause");
return 0;
}
Your complier has error messages. You need to look at those messages and fix them one at a time If you can't figure one our repost it.
I could see 2 problems:
In the first line #
is missing before the include
( could be a typo)
You are using the system
function but not including stdlib
, you need a
#include <cstdlib>
Once you've fixed the problems @codaddict pointed out, you probably also want to #include <string>
, since you're using std::string
.
Although it's not directly related, you should also work on indenting your code a bit more meaningfully.
It looks like you're also using choice
before you initialize it.
Yes, you are probably missing
#include <cstdlib> // system() defined here
#include <string> // std::string here
- Don't miss to include required headers.
- Work on your indentation.
- There is no problem with
choice
but initializing it at the point of definition would be good style. Take into account warnings too
prog.cpp:40: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
prog.cpp:60: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
prog.cpp:11: warning: ‘speedd’ may be used uninitialized in this function
#include <stdlib>
and #include <stdio>
may help...
Just add #include < string >
and your program will compile perfectly :)
精彩评论