Weird error by a void function
Hi everyone, I was writing a program and out of the 4 functions, one void function is giving 4 errors that I am not able to understand. The function is : void Conversion(double, double, char).
I am posting my program, including the function that is giving the errors.
I have highlighted the function in red. Any help is appreciated.
#include "stdafx.h"
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
char option, unit;
double minTemp, maxTemp;
void Pattern(void);
double SineWave(void);
void Convert(double,double,char);
void Quit(void);
cout<<"Please select an option from the following menu."<<endl;
cout<<" P[Pattern] S[Sinusoidal] C[Conversion] Q[Quit] "<<endl;
cin>>option;
switch(option)
{
case 'P': case 'p':
void Pattern();
break;
case 'S': case 's':
double SineWave();
break;
case 'C': case 'c':
void Convert(maxTemp, minTemp, unit);
break;
case 'Q': case 'q':
void Quit();
break;
}
return 0;
}
void Pattern()
{
char character;
int numChar;
cout<<"You choosed option P[Pattern]."<<endl;
cout<<"Please enter a character, to display the Pattern."<<endl;
cin>> character;
cout<<"Please enter the number of lines for the character to be displayed."<<endl;
cin>> numChar;
for(character=0; character<numChar; character++)
{
cout<< character<<endl;
}
}
double SineWave()
{
double Voltage = 0.0,time = 1.0, num =0.0;
const double PI = 3.14159265;
const double freq = 1.0;
int i=0;
num = (2*freq*time);
Voltage = sin(num);
for (time= 0; time<1.0; time+= 0.1)
{
cout<<"At time"<<time<<"voltage = "<<Voltage<<endl;
}
return 0;
}
void Convert(double x,double y,char z)
{
double Celcius, Fahrenheit, minTemp, maxTemp;
char tempType,c,f;
cout<<"To convert temperature from Fahrenheit to celcius, press c, and to convert celcius to Fahrenheit to, press f."<<endl;
cin>> tempType;
cout<<"Please enter the range of temperature to be converted(First the maximum and then the minimumseperated by enter)."<<endl;
cin>>maxTemp;
cin>>minTemp;
do
{
if(tempType == 'F'||'f')
Fahrenheit = (9/5)*(Celcius+32);
cout<<Celcius<<"celcius in Fahrenheit= "<<Fahrenheit<<endl;
minTemp++;
}
while(minTemp != maxTemp);
do
{
if(tempType == 'C'||'c')
Celcius = (5/9)*(Fahrenheit-32);
cout<<Fahrenheit<<"Fahrenheit is = "<<Celcius<<endl;
minTemp++;
}while(minTemp != maxTemp);
}
My errors:
Error 1 error C2182: 'Convert' : illegal use of type 'void' c:\users\robogeek\documents\onenote notebooks\elet 2300 (c++)\prog3_bhasin\prog3_bhasin\prog3_bhasin\prog3_bhasin.cpp 49
Error 2 error C2078: too many initializers c:\users\robogeek\documents\onenote notebooks\elet 2300 (c++)\prog3_bhasin\prog3_bhasin\prog3_bhasin\prog3_bhasin.cpp 49
Error 3 error C2360: initialization of 'Convert' is skipped by 'case' label c:\users\robogeek\documents\onenote notebooks\elet 2300 (c++)\prog3_bhasin\prog3_bhasin\prog3_bhasin\prog3_bhasin.cpp 52
Error 4 error C2360: initialization of 'Convert' is skipped by 'case' label c:\users\robogeek\documents\onenote notebooks\elet 2300 (c++)\prog3_bhasin\prog3_bhasin\prog3_bhasin\prog3_bhasin.cpp 52
robgeek
Junior Poster in Training
50 posts since May 2008
Reputation Points: 10
Solved Threads: 0
"What is this?"
Sorry, I am a beginner and had some confusions.
Anyways, I have made some changes, but I am getting 2 new errors.
New code
void Convert(double maxTemp,double minTemp ,char unit)
{
double Celcius, Fahrenheit;
char tempType,c,f;
cout<<"To convert temperature from Fahrenheit to celcius, press c, and to convert celcius to Fahrenheit to, press f."<<endl;
cin>> tempType;
cout<<"Please enter the range of temperature to be converted(First the maximum and then the minimumseperated by enter)."<<endl;
cin>>maxTemp;
cin>>minTemp;
do
{
if(tempType == 'F'||'f')
Fahrenheit = (9/5)*(Celcius+32);
cout<<Celcius<<"celcius in Fahrenheit= "<<Fahrenheit<<endl;
minTemp++;
}
while(minTemp != maxTemp);
do
{
if(tempType == 'C'||'c')
Celcius = (5/9)*(Fahrenheit-32) ;
cout<<Fahrenheit<<"Fahrenheit is = "<<Celcius<<endl;
minTemp++;
}while(minTemp != maxTemp);
}
My errors:
Error 7 error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup MSVCRTD.lib
Error 8 fatal error LNK1120: 1 unresolved externals C:\Users\Robogeek\Documents\OneNote Notebooks\ELET 2300
robgeek
Junior Poster in Training
50 posts since May 2008
Reputation Points: 10
Solved Threads: 0
Nope. That does not work.
By removing that include statement, I get this error:
Error 4 fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source? c:\users\robogeek\documents\onenote notebooks\elet 2300 (c++)\prog3_bhasin\prog3_bhasin\prog3_bhasin\prog3_bhasin.cpp 153
Any other suggestions?
robgeek
Junior Poster in Training
50 posts since May 2008
Reputation Points: 10
Solved Threads: 0
Alright, I was able to solve the compiling error. This is what I did:
Pressed ALT+F7
Clicked on Configuration Properties, then on Linker and then clicked system.
After that on the right side under subSystem, changed it to Console(/Subystem console)
The program compiles without errors, but there is some logical mistake in my program.
What I tried doing is if the user inpurts p or P, the case p calls the function which is defined in void Pattern(). But when I ran the program after entering p or any other case letter, it displays "press any key to continue".
Where can I be wrong?
Thanks.
robgeek
Junior Poster in Training
50 posts since May 2008
Reputation Points: 10
Solved Threads: 0
No, that does not work. Besides, just wondering, why would input cin.ignore(). I mean I am not trying to ignore anything.
Any other suggestions?
robgeek
Junior Poster in Training
50 posts since May 2008
Reputation Points: 10
Solved Threads: 0