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。

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

相关推荐
艾莉丝努力练剑25 分钟前
【AI大模型接入SDK】LLM会话管理模块设计
网络·c++·人工智能·学习·大模型
萧行之27 分钟前
可视化技术复盘:从图形语法看 D3、Vega-Lite、ECharts、Observable Plot
前端·学习·数据可视化
小此方34 分钟前
「C++AI大模型接入SDK」(一) API接入与本地两种方式对比、API Key获取、API报文详解与简单API的构建
开发语言·c++·人工智能
小弥儿9 小时前
GitHub今日热榜 | 2026-09-15:AI 智能体与本地生成工具领跑
学习·开源
susplus9 小时前
【初识ARM】ARM相关基础概念
学习·arm
GG-_-Bond9 小时前
9.1 kv存储resp协议模拟面试
c++
XiHongShi20169 小时前
键盘大小写指示器(代替键盘灯)
学习·计算机
米糕闯编程9 小时前
鱼香ros2(五)用C++编写节点
c++·ros2·cmakelists·鱼香
斯维赤11 小时前
AI Agent学习之路 | Prompt Engineering(提示词工程)的三板斧核心技巧
人工智能·学习·prompt
xiangyun6111 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法