搜索
热搜: NOIP OIer 神牛
查看: 422|回复: 0

C++ cin判断输入结束

[复制链接]

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-1-22 12:35:38 | 显示全部楼层 |阅读模式
cin 可以用来从键盘输入数据;将标准输入重定向为文件后,cin 也可以用来从文件中读入数据。在输入数据的多少不确定,且没有结束标志的情况下,该如何判断输入数据已经读完了呢?
1、从文件中读取数据
达文件末尾就读取结束。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;

int main(){   
    freopen("1204.in","r",stdin);   
    string a[100];   
    int k=0;   
    bool flag;   
    int i;     
   while(cin>>a[k])  
    {        
        flag=false;        
        for(i=0;i<k;i++)        
        {            
            if(a.compare(a[k])==0)            
            {               
                flag=true;               
                break;            
            }        
        }        

        if(!flag)            
            k++;   
    }   
    sort(a,a+k);   
    for(i=0;i<k;i++)        
        cout<<a<<endl;        

    fclose(stdin);   
    return 0;
}
1204.in中内容为
She  wants  to go to Peking University to study  Chinese
2、通过键盘(控制台中输入)
其实,在控制台中输入特殊的控制字符就表示输入结束了:
  • 在 Windows 系统中,通过键盘输入时,按 Ctrl+Z 组合键后再按回车键,就代表输入结束。
  • 在 UNIX/Linux/Mac OS 系统中,Ctrl+D 代表输入结束。
不管是文件末尾,还是 Ctrl+Z 或者 Ctrl+D,它们都是结束标志;cin 在正常读取时返回 true,遇到结束标志时返回 false,我们可以根据 cin 的返回值来判断是否读取结束。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

津ICP备19006949号-1 | 津公网安备12010102000465号

快速回复 返回顶部 返回列表