C++을 연습하려면 사용자가 점수를 따라 이름을 입력 할 수있게 한 다음 사용자가 이름을 입력하고 입력 한 점수를 가져올 수있는 간단한 프로그램을 만들려고합니다. 와. 프로그램은 이스케이프 문자 (ctrl + z)를 입력 할 때까지 이름을 입력 한 후 프로그램이 줄을 출력 할 때 이스케이프 문자를 입력 한 후 "점수를 찾는 학생의 이름 입력"을 허용하지만 사용자는 허용하지 않습니다 이름을 입력하고 대신 "아무 키나 눌러 종료하십시오"라고 읽습니다. 나는이 문제를 해결하는 방법에 완전히 곤두 박 쳤고 모든 도움이 크게 감사드립니다. 당신이 cin
스트림에 EOF 상태를 유도하려면 Ctrl + Z 키 조합을 누르면C++ 입력을 허용하기 전에 프로그램이 종료됩니다.
#include "stdafx.h"
#include <std_lib_facilities.h>
int main()
{
vector <string>names;
vector <int>scores;
string n = " "; // name
int s = 0; // score
string student = " ";
cout << "Enter the name followed by the score. (Ex. John 89)" << endl;
while(cin >> n >> s)
{
for(size_t i = 0; i < names.size(); ++i)
{
if(n == names[i])
{
cout << "Error: Duplicate name, Overwriting" << endl;
names.erase(names.begin() + i);
scores.erase(scores.begin() + i);
}
}
names.push_back(n);
scores.push_back(s);
}
cout << "Name: Score:" << endl;
for(size_t j = 0; j < names.size(); ++j)
{
cout << names[j];
cout <<" " << scores[j] << endl;
}
cout << "Enter name of student to look up their score" << endl;
cin >> student;
for(size_t g = 0; g < names.size(); ++g)
{
if(student == names[g])
{
cout << "Score: " << scores[g] << endl;
}
}
keep_window_open();
return 0;
}
eof 플래그를 지우지 않았습니다. – chris