저는 C ++를 처음 접했고 여기에 내 코드가 있습니다.
int main(int argc, const char * argv[]) {
vector<double> nums;
double input;
while (cin >> input) {
nums.push_back(input);
}
for (int i = 0; i < nums.size(); i++) {
cout << nums[i] << endl;
}
return 0;
}
프로그램이 실행되면 다음과 같이 3 개의 숫자를 입력합니다.
Enter numbers: 1 2 3
내가 입력 한 직후 3
, 나는 imediately 누를 ctrl+d
와 enter
. 그러나 두 개의 숫자 만 인쇄됩니다.
를 입력 한 직후 3
에을 누르면 enter, ctrl+d, enter
세 개의 숫자가 인쇄됩니다.
먼저 누르는 키에 관계없이 3 개의 숫자를 모두 인쇄하는 방법을 알고 싶습니다. 미리 감사드립니다.
C ++ 코드는 괜찮습니다. 이것을 일으키는 것은 쉘의 터미널 설정입니다. Linux 터미널에 입력 된 ^ D (^ D는 Unix 또는 Mac을 의미 함)는 행이 제출 될 때까지 해석되지 않습니다. 내 주장이 올바른지 확인하려면 다음과 같은 파일을 만드십시오.
echo -n 1 2 3 > /tmp/stuff.txt
이제 파일에 종료 줄 바꿈이 없는지 다시 확인하십시오.
cat /tmp/stuff.txt
개행이 없다는 것을 알 수 있습니다. 이제 파일에 대해 잘 작동하는 프로그램을 실행하십시오.
./a.out < /tmp/stuff.txt
잘 작동했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다