Pea*_*Gen 2 c++ vector std while-loop
请查看以下代码
int main()
{
cout << "Enter numbers (-1 to stop entering; -2 to exit)" << endl;
while(cin>>enterNumber)
{
numbers.push_back(enterNumber);
}
for(size_t size=0;size<numbers.size();size++)
{
cout << numbers[size] << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
我想在这里做的是这样的
在这里,当我点击进入时,什么也没发生!好像循环没有退出.点击输入后如何打印值?
UPDATE
我编写了代码作为答案中给出的建议.
int main()
{
cout << "Enter numbers (-1 to stop entering; -2 to exit)" << endl;
std::string line;
getline(std::cin, line);
std::istringstream iss(line);
while (iss >> enterNumber)
{
numbers.push_back(enterNumber);
}
for(size_t size=0;size<numbers.size();size++)
{
cout << numbers[size] << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
但它现在又出现了另一个错误
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/cygdrive/c/Users/yohan/Documents/NetBeansProjects/Excersice 6'
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/Cygwin-Windows/excersice_6.exe
make[2]: Entering directory `/cygdrive/c/Users/yohan/Documents/NetBeansProjects/Excersice 6'
mkdir -p build/Debug/Cygwin-Windows
rm -f build/Debug/Cygwin-Windows/Multiple.o.d
g++ -c -g -MMD -MP -MF build/Debug/Cygwin-Windows/Multiple.o.d -o build/Debug/Cygwin-Windows/Multiple.o Multiple.cpp
Multiple.cpp: In function `int main()':
Multiple.cpp:22: error: variable `std::istringstream iss' has initializer but incomplete type
Multiple.cpp:60:3: warning: no newline at end of file
make[2]: *** [build/Debug/Cygwin-Windows/Multiple.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
nbproject/Makefile-Debug.mk:78: recipe for target `build/Debug/Cygwin-Windows/Multiple.o' failed
make[2]: Leaving directory `/cygdrive/c/Users/yohan/Documents/NetBeansProjects/Excersice 6'
nbproject/Makefile-Debug.mk:61: recipe for target `.build-conf' failed
make[1]: Leaving directory `/cygdrive/c/Users/yohan/Documents/NetBeansProjects/Excersice 6'
nbproject/Makefile-impl.mk:39: recipe for target `.build-impl' failed
BUILD FAILED (exit value 2, total time: 1s)
Run Code Online (Sandbox Code Playgroud)
Ben*_*ley 11
使用将cin中的一行读入字符串getline
.然后将该字符串放入istringstream
.然后从istringstream
那里读取,代替你现在使用的地方cin
.
std::string line;
getline(std::cin, line);
std::istringstream iss(line);
while (iss >> enterNumber)
{
numbers.push_back(enterNumber);
}
Run Code Online (Sandbox Code Playgroud)