请问高手,这个while(cin>>s)啥时候结束????

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问高手,这个while(cin>>s)啥时候结束????相关的知识,希望对你有一定的参考价值。

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

char s;
while(cin>>s);
cout<<"over!"<<endl;
return 0;

我试过了,ctrl+D不行!请问还有其他的解释了没有?

一般测试样例是通过文件读入。。
当没有读到文件尾时 cin>>s 返回1,继续循环。
但读到文件尾时 cin>>s 返回0,结束循环。
参考技术A ctrl+D

~~~~~~~~~~~~~~~
忘了Windows下面是ctrl + Z

这个ctrl + D 或者是 ctrl + Z 是发送一个EOF,表示输入结束,这时候就会跳出while循环。
参考技术B 这个是不会停的
cin等的是键盘的输入值 当你输入了它才会去输入到内存 执行下一次等待撒
参考技术C linux: Ctrl + d
windows: Ctrl + z

string

一、包含的头文件

#include <string>
using namespace std;

 二、读写

1、cin,cout

int main()
{
    string s;
    cin>>s;
    cout << s<< endl;
    return 0;
}

 while()

int main()
{
    string s;
    while(cin>>s)
    cout << s<< endl;
    return 0;
}

 2、getline

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
    string s;
    while(getline(cin,s,*))
    cout<<s<<endl;
    return 0;
}

三、操作

1、常用的string操作

  s.empty    如果s为空串,则返回true,否则返回false

  s.size     返回s中字符的个数

  s[n]      返回s中的位置为n的字符,位置从0开始计数

  s1 + s2    把s1和s2连接成一个新的字符串,返回新生成的字符串

  s1 = s2    把s1内容替换成s2的副本

  v1 == v2    比较v1和v2的内容,相等返回true,否则返回false

  !=, <, <=    保持这些操作惯有含义

  > 和 >=

2、string::size_type类型

  任何储存strinf的size操作结果的变量必须为string::size_type类型。特别重要的是,不要把size的返回值赋给一个int变量

3、两个string的相加

  

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
    string s1("hello, ");
    string s2("world");
    s1+=s2;
    cout << s1;
    return 0;
}
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
    string s1("hello, ");
    string s2("world");
    string s3;
    s3=s1+s2;
    cout << s3;
    return 0;
}
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
    string s1("hello");
    string s2("world");
    string s3;
    s3=s1+", "+s2;
    cout << s3;
    return 0;
}

 

output:hello, world

4、cctype头文件定义的函数

isalnum(c)    如果c是字母或数字,则为true.

isalpha(c)    如果c是字母,则为true.

iscntrl(c)     如果c是控制字符,则为true.

isdigit(c)      如果c是数字,则为true。

isgraph(c)    如果c不是空格,但是可以打印,则为true。

islower(c)    如果c是小写字母,

isupper(c)    如果c是大写字母,

ispunct(c)      如果c是标点符号,

isspace(c)    如果c是空白字符,

tolower(c)    大写字母->小写字母

toupper(c)     小写字母->大写字母

 

以上是关于请问高手,这个while(cin>>s)啥时候结束????的主要内容,如果未能解决你的问题,请参考以下文章

string

contest 1004

用C++求50~100内的素数,具体问题如下

while(cin)是啥意思(C++)

cin 字符串输入

TOJ1420