while(cin>>str)循环结束问题&cin相关问题

int main()

{

  string str;

  while(cin>>str)

    cout<<str<<endl;

  return 0;

}

结束循环:1.Windows系统中,enter->ctrl+z->enter;

     2.linux,ctrl+d

当cin碰到EOF(文件结束标记end of file)循环会终止,因此我们只需要输入一个模拟end-of-file的值即可,这个值在linux下面是Ctrl+D,在windows下是ctrl+z;

时间: 2024-10-15 11:44:34

while(cin>>str)循环结束问题&cin相关问题的相关文章

c++中while(cin&gt;&gt;str)和ctrl z的相关问题探讨

对于while (cin>>str)和ctrl z的问题,网上有以下解释: ------------------------------------------------------------------------------------------------------------------------------ 输入(cin)缓冲是行缓冲.当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储.每当按下回车键后,cin就会检测输入缓冲区中是否有了可读的数据. c

while(cin&gt;&gt;str)无法结束的问题(转)

有人问while(cin>>str)...为何无论如何总是无法结束?其实在你输入完字符串后,键下回车后,再ctrl+Z(windows环境下是ctrl+z,而linux/unix下是ctrl+d)就OK了!至于原因如下: cin是终端输入,也被称之为标准输入(standard input),cin的主要功能就是从标准输入读入一个值. 当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储.每当按下回车键后,cin.get() 就会检测输入缓冲区中是否有了可读的数据.cin.ge

while (cin&gt;&gt;str)退出死循环

今天在练习的时候突然发现了这个问题,百度之感觉还挺常见的,故记之! //题目描述 // //写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串. // //输入描述 : //输入一个十六进制的数值字符串. // // //输出描述 : //输出该数值的十进制字符串. #include<iostream> #include<string> using namespace std; void fun(string str) { if (str.empty()) { r

C++ STL map B1044/A1100.火星数字(读取带空格的string : 使用getline(cin,str)函数)

用了打表的技巧 #include <bits/stdc++.h> #include<math.h> #include <string> using namespace std; const int maxn = 40010;//最大学生人数 //[0,12]的火星文 string unitDigit[13] = {"tret","jan","feb","mar","apr"

C++ STL map A1071 Speech Patterns(25) (注意如何从字符串里 分割出单词,注意读取整行带空格的string 需要使用 getlint(cin,str) 函数)

#include <bits/stdc++.h> #include<math.h> #include <string> using namespace std; const int maxn = 40010;//最大学生人数 bool check(char c){ if(c >= '0' && c<= '9') return true; if(c >= 'A' && c<= 'Z') return true; if

C++中cin.getline()、getline()、cin.get()区别

C++中有两个getline函数,这两个函数分别定义在不同的头文件中 1.getline()是定义在<string>头文件中,功能是读取一行字符串,读到换行符结束,并且抛弃换行符,如果需要读取字符,则接着下一行读取. getline(cin,str);第一个参数是输入流对象,第二个参数是字符串对象,该函数将istream参数作为返回值.如while(getline(cin, line)) 2.cin.getline()是cin的一个成员函数,定义在<iostream>头文件中,该函

Vue.nextTick DOM 更新循环结束之后执行延迟回调

在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM. 简单来说,Vue 在修改数据后,视图不会立刻更新,而是等同一事件循环中的所有数据变化完成之后,再统一进行视图更新. 知乎上的例子 //改变数据 vm.message = 'changed' //想要立即使用更新后的DOM.这样不行,因为设置message后DOM还没有更新 console.log(vm.$el.textContent) // 并不会得到'changed' //这样可以,nextT

while(cin&gt;&gt;word)循环的退出方法

C++Primer中的一行代码: string word; while(cin>>word) cout<<word<<endl; return 0; 强制退出while循环的方法:按F6,然后回车.

cin判断读取结束 C++语言

cin是C++的输入流,可以通过>>进行读取. 判断读取结束,一般有两种方法,具体取决于与输入的约定. 1 以特殊值结尾. 如输入整数,以-1结束,那么当读到-1的时候,就确定读取结束了. 代码: int n; while(1) {     cin>>n;     if(n == -1)break;     //处理输入的合法值. } 2 以EOF结尾,即文件结束符. 这种处理方式适用于以文件作为输入,或者在键盘手动输入文件结束符作为结尾标记. 代码: int n; while(c