C++学习一(主要对cin的理解)

cpp 复制代码
#include<iostream>
int main()
{
	
	int sum = 0, value = 0;
	//读取数据直到遇到文件尾,计算所有读入的值的和
	while (std::cin >> value)
	{   //等价于sum=sum+value
		sum += value;
	}
	std::cout << "Sum is :" << sum << std::endl;
	sum = 0;
	for (int i = -100; i <= 100; ++i)
	{
		sum += i;
	}
	std::cout << sum << std::endl;
	
	下面这个程序当我们执行的时候
	注意cin输入的理解
	c++学习不要记得C语言的习惯,不然很容易搞错
	//currVal是我们正在统计的数,我们将读入的新值存入val
	int currVal = 0, val = 0;
	//读入第一个数,并确保确实有数据可以处理
	if (std::cin >> currVal) {
		int cnt = 1;
		while (std::cin >> val) {
			if (val == currVal)
				++cnt;
			else {
				std::cout << currVal << " occurs " << cnt << " times" << std::endl;
				currVal = val;
				cnt = 1;
			}
		}
		//记住打印文件中最后一个值的个数
		std::cout << currVal << " occurs " << cnt << " times" << std::endl;
		return 0;
	}


	return 0;
}

在理解 cin 功能时,不得不提标准输入缓冲区。当我们从键盘输入字符串的时候需要敲一下回车键才能够将这个字符串送入到缓冲区中,那么敲入的这个回车键(\r)会被转换为一个换行符(\n),这个换行符也会被存储在 cin 的缓冲区中并且被当成一个字符来计算!比如我们在键盘上敲下了 123456 这个字符串,然后敲一下回车键(\r)将这个字符串送入了缓冲区中,那么此时缓冲区中的字节个数是 7 ,而不是 6。

初学,好好理解一下这段代码

相关推荐
Lightning-py4 分钟前
符号系统与分类逻辑
学习
爱装代码的小瓶子4 分钟前
【C++与Linux进阶】详解信号的捕获:内核态和用户态的转换
linux·开发语言·c++
adore.9684 分钟前
3.09 复试学习
c++·学习·算法
胡图图不糊涂^_^12 分钟前
MySQL学习笔记——数据库约束与数据库设计-表设计
数据库·笔记·学习·mysql·数据库约束·表设计
墨澜逸客17 分钟前
原創詩詞《生死赋·集群句》作者/墨澜逸客
学习·其他·百度·学习方法·新浪微博
Austindatabases24 分钟前
我很笨--学习PG Vector 1个小时我懂得HNSW 索引调优和使用--要不你也试试!! (系列 4 )
学习
红藕香残玉簟秋28 分钟前
【安卓学习】配置开发环境
android·学习
FriendshipT32 分钟前
YOLOs-CPP:一个免费开源的YOLO全系列C++推理库(以YOLO26为例)
c++·人工智能·yolo·目标检测·分类·开源
不想看见40433 分钟前
Shuffle an Array随机与取样--力扣101算法题解笔记
开发语言·c++·算法
bu_shuo35 分钟前
Microsoft Visual C++的相关文件.sln
开发语言·c++·vc2010