C ++ Xcode不会运行我的for循环(非常短)

时间:2017-09-27 07:14:39

标签: c++ xcode

我想继续阅读Stroustrup PPUC ++,但我被卡住了!几天前我写了一个BleepOutTheBadWords程序并且它有效。我几天前和弟弟一起写了这个程序但是我失败了。这本质上是我写的一个程序,用以找出问题所在。它不会打印出“句子”向量中的每个单词。

#include <iostream>
#include "std_lib_facilities.h" // Stroustrup header file
using namespace std; 

int main()
{
    cout << "Write a sentence." << endl;

    vector<string> sentence;

    // Put user input into "sentence" vector
    for (string word; cin >> word; )
        sentence.push_back(word);

    // Print each word in "sentence" vector
    for (int i = 0; i < sentence.size(); ++i)
        cout << sentence[i] << endl;

    // Keep window open and return 0 to show program succeeded    
    keep_window_open();
    return 0;
}

答案显而易见。如果你这么善良,请说清楚。在发布之前,我查看了两个不同页面上的建议读数。

1 个答案:

答案 0 :(得分:3)

  

XCode不会运行我的for循环

您的循环正在运行。你错过的是如何终止循环。

for (string word; cin >> word; )

cin >> word求值为false时,此循环将终止。通常,即没有错误条件,当输入完成时,它将评估为false。发出信号流结束或EOF的确切过程取决于平台。如果您在OSX上运行此程序,那么发出EOF信号的最常用方法是点击Ctrl + D按钮,除非您更改了键盘的默认配置。一旦发出EOF信号,此输入循环将终止,您将能够看到输出。

我非常确定Stroustrup在他的书中讨论过这个问题(尽管我不能提到确切的页码)。但是&#34;第10章:输入和输出流&#34;他的书中详细介绍了这些内容。