2015-12-14 129 views
0

在这段代码中,如何停止这段代码的输入,在HUBBARD的早期版本中,它的写入使用Ctrl + D或Ctrl + z,但它不起作用。请帮助如何停止输入命令?

#include <iostream> 
#include <string.h> 

using namespace std; 

int main() 
{ 
    char line[80]; 
    while(*line) 
    { 
     cin>>line; 
     if(*line) cout<<" "<<line<<" "<<endl; 
    } 
    return 0; 
} 
+1

通过输入'\ 0' –

+0

你试过'按Ctrl + C'? –

+0

\ 0不工作 是的,Ctrl + c正在工作。 谢谢 –

回答

1

检查流的EOF是否已达到需要做一点不同。当达到EOF时

#include <iostream> 
#include <string.h> 

using namespace std; 

int main() 
{ 
    char line[80]; 
    while(cin>>line) 
    { 
     cout << " " << line << " " << endl; 
    } 
    return 0; 
} 

cin >> line将评估为false或是否有任何其他错误。因此当时while循环将会中断。

如果您确实需要阅读一条线,如变量line所示,请勿使用cin >> line。改为使用std::getlinecin >> line不会读取空格字符。 std::getline将读取空白字符。

#include <iostream> 
#include <string.h> 

using namespace std; 

int main() 
{ 
    std::string line; 
    while(getline(cin, line)) 
    { 
     cout << " " << line << " " << endl; 
    } 
    return 0; 
} 
0

您可以通过使用不等于比较运算符的任何值(如0,$)来停止while循环。

while(*line!='0') 

当你输入0时它会终止。 或通过使用$

while(*line!='$') 

当您将输入$它将终止。 的完整代码

#include <iostream> 
using namespace std; 
int main() { 

char line[80]; 
while(*line!='$') 
{ 
    cin>>line; 
    if(*line) cout<<" "<<line<<" "<<endl; 
} 
return 0;  
}