Visual Studio — C ++ код работает в Gedit, но не в VS

Я написал программу в Visual Studio для Windows, и программа компилируется правильно, но не отображает желаемый вывод на консоль. Однако, если я скомпилирую и запущу программу в Gedit на Linux, отобразится правильный вывод, и все будет работать. Почему это? Код ниже:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
string input;

cout << "College Admission Generator\n\n";

cout << "To begin, enter the location of the input file (e.g. C:\\yourfile.txt):\n";
cin >> input;ifstream in(input.c_str());

if (!in)
{
cout << "Specified file not found. Exiting... \n\n";
return 1;
}

char school, alumni;
double GPA, mathSAT, verbalSAT;
int liberalArtsSchoolSeats = 5, musicSchoolSeats = 3, i = 0;

while (in >> school >> GPA >> mathSAT >> verbalSAT >> alumni)
{

i++;

cout << "Applicant #: " << i << endl;
cout << "School = " << school;
cout << "\tGPA = " << GPA;
cout << "\tMath = " << mathSAT;
cout << "\tVerbal = " << verbalSAT;
cout << "\tAlumnus = " << alumni << endl;

if (school == 'L')
{
cout << "Applying to Liberal Arts\n";

if (liberalArtsSchoolSeats > 0)
{

if (alumni == 'Y')
{

if (GPA < 3.0)
{
cout << "Rejected - High school Grade is too low\n\n";
}

else if (mathSAT + verbalSAT < 1000)
{
cout << "Rejected - SAT is too low\n\n";
}

else
{
cout << "Accepted to Liberal Arts!!\n\n";
liberalArtsSchoolSeats--;
}
}

else
{
if (GPA < 3.5)
{
cout << "Rejected - High school Grade is too low\n\n";
}

else if (mathSAT + verbalSAT < 1200)
{
cout << "Rejected - SAT is too low\n\n";
}

else
{
cout << "Accepted to Liberal Arts\n\n";
liberalArtsSchoolSeats--;
}
}
}

else
{
cout << "Rejected - All the seats are full \n";
}
}

else
{
cout << "Applying to Music\n";

if (musicSchoolSeats>0)
{
if (mathSAT + verbalSAT < 500)
{
cout << "Rejected - SAT is too low\n\n";
}

else
{
cout << "Accepted to Music\n\n";

musicSchoolSeats--;
}
}

else
{
cout << "Rejected - All the seats are full\n";
}
}
cout << "*******************************\n";
}
return 0;
}

Спасибо за любую помощь!

РЕДАКТИРОВАТЬ: удалены пух.

Чтобы уточнить, программа компилируется в VS. Он открывает файл, но не выводит какую-либо информацию из файла, а вместо этого просто печатает «нажмите любую клавишу для выхода …» сообщение.

-2

Решение

У тебя есть string input; а также cin >> input;, Эти заявления требуют <string> заголовок, но вы не включили его (явно). В некоторых реализациях вы можете получить бесплатные поездки, так как <iostream> включает в себя <string> заголовок. Но ты не должен. Всегда включайте соответствующий заголовок:

#include <string>

Без вышеуказанного заголовка ваш код скомпилирует в Linux, использующем g ++ (который вы используете), но не в Windows, использующем Visual C ++. Это, как говорится, использовать станд :: GetLine принимать строки из стандартного ввода вместо std::cin,

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]