Инструкция на C ++ - PullRequest
       2

Инструкция на C ++

0 голосов
/ 15 октября 2010

Я написал эту программу, однако, когда я пытаюсь скомпилировать ее, я получаю синтаксические ошибки.Я не могу найти, где синтаксические ошибки.

Он должен рассчитывать количество секундных прохождений звука в разностных газах, информация предоставлена ​​пользователем.

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;

}

Ответы [ 6 ]

5 голосов
/ 15 октября 2010

Ваш компилятор имеет сообщения об ошибках.Вам нужно посмотреть на эти сообщения и исправить их по одному. Если вы не можете понять одно, то выкладывайте их заново.

2 голосов
/ 15 октября 2010

Я мог видеть 2 проблемы:

В первой строке # отсутствует до include (может быть опечатка)

Вы используете функцию system, но не включаете stdlib, вам нужен

#include <cstdlib>
0 голосов
/ 24 октября 2010

Просто добавьте #include < string > и ваша программа отлично скомпилируется :)

0 голосов
/ 15 октября 2010

#include <stdlib> и #include <stdio> могут помочь ...

0 голосов
/ 15 октября 2010

Да, вы, вероятно, пропускаете

#include <cstdlib> // system() defined here
#include <string>  // std::string here
  • Не пропустите, чтобы включить необходимые заголовки.
  • Работайте над отступом.проблема с choice, но ее инициализация в точке определения будет хорошим стилем.
  • Также учитывайте предупреждения

    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

0 голосов
/ 15 октября 2010

Как только вы исправите указанные @codaddict проблемы, вы, вероятно, также захотите #include <string>, так как вы используете std::string.

Хотя это не имеет прямого отношения, вам также следует поработать над отступом кода более осмысленно.

Похоже, вы также используете choice, прежде чем инициализировать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...