ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。
Ctrl+Z:一般用于输入字符串时,比如下面这个程序。
#include
#include
#include
using namespace std;
int main(){
vector
string tmp;
while (cin>>tmp){
a.push_back(tmp);
}
for (vector
cout << *iter << endl;
}
return 0;
}
扩展资料
C语言中whlie跳出循环的结束方式:
1、break关键字
讲到了break,用它来跳出 switch 语句。当 break 关键字用于 while、for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足条件时便跳出循环。
while 循环条件为 1,是一个死循环。当执行到第100次循环的时候,计算完i++;后 i 的值为 101,此时 if 语句的条件 i> 100 成立,执行break;语句,结束循环。在多层循环中,一个 break 语句只向外跳一层。
2、continue语句
continue 语句的作用是跳过循环体中剩余的语句而强制进入下一次循环。continue语句只用在 while、for 循环中,常与 if 条件语句一起使用,判断条件是否成立。
程序遇到while时,变量c的值为'\0',循环条件c!='\n'成立,开始第一次循环。getchar() 使程序暂停执行,等待用户输入,直到用户按下回车键才开始读取字符。
在微软的DOS和Windows中,“Ctrl+Z”输入的是EOF符号,就是 C++中标准输入的结束符号。
例如标准输入函数scanf函数返回成功读入的数据项数,读取数据时遇到了“文件结束”则返回EOF。如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d。
C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
扩展资料:
EOF的应用:
档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF会在编译原始码前展开实际值给预处理器。
C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。
在 UNIX中, EOF表示能从交互式 shell (终端) 送出 Ctrl+D (习惯性标准)。在微软的 DOS 与 Windows 中能送出 Ctrl+Z。在某些例子处理纯文字档案或从"字元设备"读入资料。
参考资料来源:百度百科-scanf
参考资料来源:百度百科-EOF
同意2楼的说法,在利用while(cin >> ival1)连续输入数据时,在接受到Ctrl+Z时结束,即是遇到文件结束符EOF,在VS下是Ctrl+D,此时输入流cin处于错误状态,无法正确读取数据。必须恢复输入流cin的有效状态,即是加上cin.clear()(二楼所说位置添加即可),这样一来,输入流就可以正确读取数据了。
#include
#include
using namespace std;
int main()
{
vector
int ival1,ival2;
while(cin>>ival1,!cin.eof())
ivec.push_back(ival1);
for(vector
cout<
cin>>ival2;
cout<<"ival2="<
return 0;
}
程序如上。你加个
cin.clear();
就可以了。就是你Ctrl+Z结束输入后,可以输入下个值了。
这个函数主要是回复有效状态。
Ctrl+Z是文件结束符。
那是你那个循环结束的标志