我也是这么想的
谢谢啦
Everything is gonna be okay!
我感觉讨论如何操作才能退出这个循环应该不在编程的范畴了吧.LZ要真想要退出这个循环的操作方法,除按两次Ctrl+Z外,还有以下方法
1.Ctrl+Pause Break
2.Alt+F4
3.点击关闭按钮
4.结束进程
5.重启计算机
其效果跟按两次Ctrl+z等价
但要是这样的话该贴似乎不应该出现在编程论坛
LZ写那个程序的本意貌似一直让用户输入字符串,并显示在屏幕上,直到输入的为空字符串为止退出循环
但getline函数好象不返回0值或者bool false,所以我感觉研究一下getline比讨论如何操作来退出循环意义要大的多
连按两次Ctrl+z的效果跟七楼的程序差不多吧.
与其连按两次Ctrl+z,倒还不如这样
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
int n,i=0;
cout<<"想输入几次:"<<endl;
cin>>n;
while(i<n)
{
cin>>s;
cout<<s<<endl;
i++;
}
return 0;
}
ctrl+z 回车就可以退出来了吧 (VC++2005下)
如LS所说,研究一下getline比讨论如何操作来退出循环意义要大的多,要退出程序有很多的方法。
我们可以不用全局名称空间,下个程序可以参考一下
#include <string>
#include <iostream>
int main () {
std::string s,s2;
std::getline(std::cin,s);
std::getline(std::cin,s2);
std::cout << s <<'\t'<< s2 << std::endl;
return 0;
}
在不同的编译下结果会有点区别:
VC++6.0:
INPUT:
Hello enter
World enter
Why? enter
OUTPUT:
Hello World //Why?被丢弃了
VC++2005:
input:
Hello enter
World enter
OUTPUT:
Hello World 不知道这是不是VC++6.0的一个BUG。
下面为MSDN的资料:
getline
Parameters
_Istr
The input stream from which a string is to be extracted.
_Str
The string into which are read the characters from the input stream.
_Delim
The line delimiter.
Return Value
The first function returns getline( _Istr, _Str, _Istr.widen( '\n' ) ).
The second function replaces the sequence controlled by _Str with a sequence of elements extracted from the stream _Istr.
Remarks
In order of testing, extraction stops:
At end of file.
After the function extracts an element that compares equal to delim, in which case the element is neither put back nor appended to the controlled sequence.
After the function extracts str.max_size elements, in which case the function calls setstate(ios_base::failbit).
If the function extracts no elements, it calls setstate(failbit). In any case, it returns _Istr.