今天主要学习Pointer和Array的相关内容,这些问题对我来说都是老生常谈了,较为感兴趣的是那个例子。

#include <iostream>
#include <vector>

using namespace std;

int main( )
{
    int inputVal;
 vector<int> array;

cout << "Enter any number of integers: ";
 while(cin>>inputVal){
        array.push_back( inputVal );
 }

for( int i = 0; i < array.size( ); i++ )
        cout << array[ i ] << endl;
 system("pause");
    return 0;
}

这个例子用来read unlimited numbers,然后write them.

我一开始的困惑来着于这个unlimited numbers。我以为输入一堆数比如123213213123输出也是这样的123213213123。

结果发现什么都没输出。

原因很简单,while(cin>>inputVal)表示持续的读入键盘流,如果一直不加空格,是会被当成一个数的,而这么大的数显然超过了int的范围,并且溢出,无法得到正确的结果。空格在cin中的作用是对输入截断,比如

int a,b;
cin>>a>>b;

cout<<a<<" "<<b<<endl;

如果输入3 4, 得到 3 4

而如果输入34,则认为你只给a进行了赋值,所以还需要继续输入。

对于如何让这种以while(cin>>inputVal)格式的连续输入停止有很多方法

1 是直接在最后一个输入的数后面打eof然后回车

2 是在最后一个输入的数后面打ctrl+z然后回车

其实两个是一样的 ctrl+z用了模拟一个eof的信号而已,并不是真的输入的ctrl+z。

所以我们看出,空格是cin的杀手,遇到空格普通的cin>>就不好使了,那么如何用cin来接收有空格的一行字符呢?

比如:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
#include <iostream>( p! R% _1 g& t7 t# w
using namespace std;

void main(){
 char a[20];
 cin.get(a,20);
 cout<<a<<endl;
 system("pause");
}

输入:jkl jkl jkl/ M0 /- T4 g0 x- Z; U) `' W6 g, n! T
输出:jkl jkl jkl  j9 v+ z8 u" B5 f% ^' P$ o

输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
输出:abcdeabcdeabcdeabcd              (接收19个字符+1个'/0'), w$ z  d) H  W+ T4 x; b4 `, H

类似的还有 cin.getline()

#include <iostream>( p! R% _1 g& t7 t# w
using namespace std;

void main(){
 char a[20];
 cin.getline(a,20);
 cout<<a<<endl;
 system("pause");
}

两个的区别是cin.get()每次读取一整行并把由Enter键生成的换行符留在输入队列中而cin.getline舍弃换行符

(具体见:http://blog.csdn.net/steven20027/archive/2010/05/27/5627292.aspx)

最后顺便回顾一下如何从txt中读取一行

我的方法是采用string类中的getline来完成。used with c++ std::string 要用C++就一起都用C++的东东

#include <fstream> 
#include <string>

using namespace std;
void main(){  
 
 string s;
 ifstream myfile("a.txt");
 //myfile.getline(s,256);
 //cout<<s<<endl;
 while(getline(myfile,s))   //   读一行,自动判断换行,丢弃换行符. 
            cout<<s<<endl;   //   输出这一行 然后继续读下一行

system("pause");

}

当然也可以用cin.getline这种C-style的来写,没试过。

Cin的用法详解以及文件的读取相关推荐

  1. linux中chgrp参数,linux chgrp命令参数及用法详解--变更文件或目录的所属群组

    chgrp 1.作用 chgrp表示修改一个或多个文件或目录所属的组.使用权限是超级用户. 2.格式 chgrp [选项]... 组 文件... 或 chgrp [选项]... --reference ...

  2. c语言getline作用,C++ cin.getline及getline()用法详解

    下面先看下C++ cin.getline用法,具体内容如下所示: 使用 C++ 字符数组与使用 string 对象还有另一种不同的方式,就是在处理它们时必须使用不同的函数集.例如,要读取一行输入,必须 ...

  3. java 生成dump_java dump文件怎么生成和分析-JMAP用法详解

    jmap是java自带的工具 1. 查看整个JVM内存状态 jmap -heap [pid] 2. 查看JVM堆中对象详细占用情况 jmap -histo [pid] 3. 导出整个JVM 中内存信息 ...

  4. fileinput 时间_JavaScript_Bootstrap Fileinput文件上传组件用法详解,最近时间空余,总结了一些关...

    最近时间空余,总结了一些关于bootstrap fileinput组件的一些常见用法,特此分享到phpstudy平台,供大家参考,同时也方便以后的查找.本文写的不好还请见谅. 一.效果展示 1.原始的 ...

  5. python读取json格式文件大量数据,以及python字典和列表嵌套用法详解

    1.Python读取JSON报错:JSONDecodeError:Extra data:line 2 column 1 错误原因: JSON数据中数据存在多行,在读取数据时,不能够单单用open(), ...

  6. c语言fputc输入字符串,C语言fgetc和fputc函数用法详解(以字符形式读写文件)

    C语言fgetc和fputc函数用法详解(以字符形式读写文件),文件,字符,指针,函数,字节 C语言fgetc和fputc函数用法详解(以字符形式读写文件) 易采站长站,站长之家为您整理了C语言fge ...

  7. NAudio用法详解(7)Wav文件结构分析及NAudio相关对象对应关系分析

    目录 波形文件的基础知识 波形文件的存储过程 与声音有关的三个参数 1.采样频率 2.采样位数 3.声道数 WAV文件的编码 文件整体结构 RIFF区块 fmt区块(FORMAT区块) DATA区块 ...

  8. STL中map和string, vector 用法详解

    1. map 用法详解 std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成 ...

  9. C++/C--unordered_map常见用法详解

    文章目录 1. std::unordered_map 的定义与特性 2. 构造 std::unordered_map 3. 赋值操作 4. 迭代器操作 4.1 指向整个容器中的元素 4.2 指向某个桶 ...

  10. C++/C--set常见用法详解【转载】

    1 概念 set是一个内部自动有序且不含重复元素的容器,其实现自动去重按升序排序.使用set,需要添加头文件:#include <set>.可以通过迭代器*it来访问set里面的元素,但是 ...

最新文章

  1. c 连接mysql后 怎么用_使用C语言连接mysql,并进行操作
  2. RequestMethod的参数的含义是?
  3. android制作相册浏览器_电脑上用什么软件做电子相册
  4. php指定字符编码,PHP字符编码问题
  5. mongo 唯一约束索引_Java:MySQL 基础知识+索引相关
  6. vba 正则表达式_VBA中正则表达式与数组结合的应用案例!
  7. 蔡高厅老师 - 高等数学阅读笔记 - 06 - 高阶导数 隐函数- 02 (28、29、30、31)
  8. 2018 Multi-University Training Contest 4 Problem E. Matrix from Arrays 【打表+二维前缀和】
  9. 解决MMC不能打开文件MSC文件(转)
  10. java面试排序_Java-四种面试常考排序
  11. reids高可用(灾难备份-持久化)
  12. 创建三维零件的DH坐标系
  13. 微信推送封面尺寸_微信公众号文章封面图尺寸是多少?如何快速制作封面图?...
  14. 【人机交互技术】Web界面设计
  15. Garbled Circuits介绍 - 4 混淆电路的优化
  16. NTC与PTC压敏电阻在电源电路中起的作用
  17. Ant Design - Authorized
  18. springboot:实现文件上传下载实时进度条功能【附带源码】
  19. java加载gif动画图片
  20. 【图像分割】基于matlab萤火虫算法图像聚类分割【含Matlab源码 2106期】

热门文章

  1. L2-002 链表去重 (25 分)—团体程序设计天梯赛
  2. 面向对象与面向过程对比
  3. Python 操作 mongodb 数据库
  4. 【网络基础编程】第三节 C/S
  5. 关于webapp的一点思考
  6. JQuery快速学一(强悍的选择器)
  7. html2canvas 像素,html2canvas 如何生成高清图片?
  8. php 新浪ip接口,php利用新浪接口查询ip获取地理位置示例
  9. C语言关于一个作用域内的局部变量反复申请同一个栈区内存空间的事儿
  10. router阻止telnet自身的两种方法