我遇到while循环的问题。 while循环后面的语句没有执行,我不知道为什么。我是C++新手,无法弄清楚这一点。我试图把一些单词作为用户的输入,并将它们存储在一个字符串向量中,只是为了练习。这里是我的代码:While循环未执行后的声明
#include "stdafx.h"
#include <string>
#include <iostream>
#include <vector>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
int _tmain(int argc, _TCHAR* argv[])
{
vector<string> list;
string word;
while(cin >> word)
{
list.push_back(word);
cout << "Added " << word << endl;
}
cout << endl;
cout << "Done" << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
当我运行此控制台应用程序,我可以看到,while循环执行中的语句和信息“新增”,而是“做”的消息不显示。我已经通过在while循环之后指定其他语句(例如,从同一个字符串向量中获取&显示值的for循环)来尝试此操作,但是在此while循环执行后没有语句。只有while循环之前和之内的语句被执行,我不知道为什么。
你如何终止输入流?除非你这样做,否则你永远不会退出循环。尝试将文件重定向为标准输入,例如'a.exe
molbdnilo
我认为它是一个无限循环,每次你给它输入它都会起作用。你必须在某个地方打破循环。 – Himanshu
好吧,我猜这应该是在用户停止输入单词后立即终止。不是这样吗? D: –