cin 和 getchar()

原创 2015年11月17日 23:51:27



1 #include <stdio.h>
  2 #include <iostream>
  3 #include <string.h>
  4 using namespace std;
  5
  6 int main()
  7 {
  8     char buffer[200];
  9     int i=0;                                                               
 10     char temp;
 11     temp = getchar();
 12     if(temp == '\n')
 13         return 0;
 14     while(temp == ' ')
 15     {
 16         temp= getchar();
 17         if(temp != ' ')
 18             break;
 19     };      
 20     if(temp != '\n')
 21     {
 22         while(temp != '\n')
 23         {
 24             buffer[i++] = temp;
 25             temp = getchar();
 26             if(temp == ' ')
 27             {
 28                 while (temp == ' ')
 29                     temp = getchar();
 30                 buffer[i++] = ' ';
 31             }
 32         }
 33     }
 34
 35 //  cout << endl << buffer;
 36     for(int j=0; j<strlen(buffer); j++)
 37         cout << buffer[j];
 38     cout << endl;
 39     return 0;
 40 }          
 运行结果:
     today is     nice day. hl

today is nice day. hl
关键点:
1. do while和while运行顺序要保证正确
2. temp = getchar()为正确,而cin >> temp无法正确实现功能

cin>>

该操作符是根据后面变量的类型读取数据。

输入结束条件 :遇到Enter、Space、Tab键。

对结束符的处理 :丢弃缓冲区中使得输入结束的结束符(Enter、Space、Tab)

请参考如下网址:

http://www.cnblogs.com/A-Song/archive/2012/01/29/2331204.html


scanf()、getchar()、gets()、cin之间的区别

问题描述一:(分析scanf()和getchar()读取字符)       scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候...
  • u011982340
  • u011982340
  • 2014年09月06日 13:33
  • 1054

C++中为什么有时候会出现使用cin后在再使用getchar()会没有用

C++中为什么有时候会出现使用cin后在再使用getchar()会没有用? 比如下面这个程序: #include using namespace std; int main(){ int x...
  • LLXLQY
  • LLXLQY
  • 2016年05月05日 17:54
  • 1192

scanf、gets、getchar、cin、cin.get、cin.getline、getline总结

一、scanf scanf一般可用于读取数字、字符、字符串; 结论: (1)当 scanf 从缓冲区中读取单个字符时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,scanf 不会将其忽...
  • cyuyanenen
  • cyuyanenen
  • 2016年06月07日 12:54
  • 1711

避免超时方法二 :优化数据输入,浅谈getchar,cin,scanf,fread

做ACM的题目时候,输入输出是很重要的,特别输入的数字很多的时候,很容易影响整个程序的执行时间,下面浅淡C语言c++的输入 1.最基础的当然是scanf,这里跟getchar一起讲。我一开始很疑惑,使...
  • llzhh
  • llzhh
  • 2016年04月17日 15:55
  • 2164

cin,scanf,gets,getline,getchar的一些区别和注意事项

cin: 输入结束条件 :遇到Enter、Space、Tab键。 scanf: scanf 读取字符串时,当遇到空格、回车和Tab键都会认为输入结束。 gets: 一般只用于读取字符...
  • yuzeyuan
  • yuzeyuan
  • 2017年03月18日 10:03
  • 214

关于getchar() 和 cin 输入字符串的速度问题

这几天实训无聊,碰巧蓝桥杯赛又要开始报名了,无聊就刷了刷蓝桥杯练习系统的题,还都是以前做过的题目。 做到第三题:十六进制转八进制 没多想就把第二题的代码复制过来改了改就提交了,用的是 getchar(...
  • qq_36063677
  • qq_36063677
  • 2017年11月21日 19:59
  • 45

C++最快的读取文件的方案(scanf,cin(及取消sync),fread)的详细对比

竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的rea...
  • txl16211
  • txl16211
  • 2014年08月30日 14:45
  • 2119

C语言getchar()=='\n'的使用,对输入的任意个字符操作

示例一.打印出输入的任意个字符#include void main() { int a[100],i,s=0; while(1) { scanf("%d",&a...
  • LIU_YANZHAO
  • LIU_YANZHAO
  • 2016年09月03日 17:14
  • 1513

getchar和scanf的区别

scanf可以一次按照设定的输入格式输入多个变量数据.如 int d, float f, char str[20], scanf("%d%f%s",d,f,str); getchar()只能输入字符...
  • Ziv2086581691
  • Ziv2086581691
  • 2016年07月21日 10:00
  • 6603

深入了解scanf() getchar()和gets()等函数之间的区别

---------------------------------------------------- | 问题描述一:(分析scanf()和getchar()读取字符)   | -------...
  • zqixiao_09
  • zqixiao_09
  • 2015年12月05日 21:35
  • 3718
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cin 和 getchar()
举报原因:
原因补充:

(最多只允许输入30个字)