C++控制台输入

2023-11-12

我们在刷牛客网的题目时,经常遇到多组输入,执行到文件结束,下面介绍几种写法

1、C语言的输入多个整数

while(scanf("%d", &n) != EOF){ // 为End Of File的缩写,通常在文本的最后存在此字符表示资料结束
    /*
     code
    */
}

2、C++输入字符串string

int main()
{
    string str;
	getline(cin, str) 
	cout<< str<<endl;
    return 0;
}       

3、C++输入字符串char数组

int main()
{
	char str[100];

	while (gets(str))
	{
		cout << str;
	}
    return 0;
}

4、 C++输入一组数据

template<typename T>
vector<T> ReadVector(int count) // 任意类型的数组
{
    vector<T> result(count);
    for (int i = 0; i < count; i++)
    {
        cin >> result[i];
    }
    return result;
}

int main()
{
    int num = 0;
    cin >> num;
    vector<string> res = ReadVector<string>(num);

	for (auto &row : res)
	{
		cout << row << " ";
	}
    return 0;
}

5、 输入回车,判断当前输入结束

int main()
{	
    vector<int> result;
	int a;
	while (cin >> a)
	{
		result.push_back(a);
		if (getchar() == '\n')
        {
            break;
        }  
	}

	int i = 0;
	while (result.size() > i)
	{
		cout << result[i++] << " ";
	}
    return 0;
}

6、输入多个数据 

    char a;
	int b;
	float c;
    cin >> a >> b >> c;
	cout << a << " " << b << " " << c << " " << endl;

7、输入结构体

typedef struct tgStudent
{
	char name[100];
	int number;
	int score;

}Student;

int main() {
	int num;
	cin >> num;

	Student* studentList = new Student;
	for (size_t i = 0; i < num; i++)
	{
		cin >> studentList[i].name >> studentList[i].number >> studentList[i].score;
	}

	for (int j = 0; j < num; j++)
	{
		cout << studentList[j].name << " ";
		cout << studentList[j].number << " ";
		cout << studentList[j].score << " ";
		cout << endl;
	}
}

8、输入字符串数组

int g_row, g_col;   //行、列数
char waitWord[101] = { '\0' }; //待查找的单词
char maze[100][21] = { {'\0'} };  //字母矩阵
int main()
{
	cin >> g_row >> g_col;        //输入行、列数
	cin.get();            //去掉回车符
	cin.getline(waitWord, 100);  //输入待查找的单词
	for (int i = 0; i < g_row; i++)
	{
		cin.getline(maze[i], 21);  //输入字母矩阵
	}
	system("pause");
	return 0;
}

注意:在终端中手动输入时,系统并不知道什么时候到达了所谓的“文件末尾”,必须输入以下字符才能结束输入:

  • 在 Windows 系统中,通过键盘输入时,按 Ctrl+Z 组合键后再按回车键,就代表输入结束。
  • 在 UNIX/Linux/Mac OS 系统中,Ctrl+D 代表输入结束。

参考:

C++ cin判断输入结束(读取结束)

C++ cin判断输入结束(读取结束)

c++输入问题:输入回车判断当前输入结束_Hello World程序员的博客-CSDN博客_c++回车结束输入

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++控制台输入 的相关文章

  • 多个源的 makefile

    在学习 make 文件时 我试图为多个源目录编写一个 make 文件 似乎我在某个地方错了 这是我的代码结构 directory common fun2 c inc fun h src fun1 c main c 这是我的生成文件 CC c
  • Poco c++Net:Http 从响应中获取标头

    我使用 POCO C Net 库进行 http 我想尝试制定持久缓存策略 首先 我认为我需要从缓存标头中获取过期时间 并与缓存值进行交叉检查 如果我错了 请告诉我 那么我如何从中提取缓存头httpResponse 我已经看到你可以用 Jav
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • 有没有办法在 xcode 上使用 c++0x ?我想使用 gcc 4.4 或更高版本

    我想使用 gcc 4 4 或更高版本进行 iphone 开发 有人知道怎么做吗 不 你不知道 相信我 你不会 Apple 仍保留 gcc 4 2 1 因为 4 2 2 及更高版本使用 GPLv3 这意味着他们必须放弃对其平台的控制 对于 i
  • linq 中使用字符串数组 c# 的 'orderby'

    假设我有一个这样的方法定义 public CustomerOrderData GetCustomerOrderData string CustomerIDs var query from a in db Customer join b in
  • 从代码中,如何创建对存储在附加属性中的对象的属性的绑定?

    我们有一个继承的附加属性来存储一个对象 在可视化树的更下方 我们希望从代码绑定到该对象的属性 通常我们像这样构建绑定的路径部分 var someBinding new Binding Path new PropertyPath Attach
  • 在 C# 中调用 C++ 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有很多用 C 编写的库 我想从 C 调用这些库 但是 我遇到了很多问题 我想知道是否有书籍或指南告诉我如何做到这一点 Dll导入 htt
  • 如何制作可启动程序?

    所以 这个问题可能看起来很奇怪 但假设我编译了 int main void int x 3 int y 4 int z x y 是否可以让CPU这样运行 如何 例如 这允许我写入监视器吗 如果我没记错的话 内存中有些地方可以写入要显示的内容
  • 使用 LINQ 更新 IEnumerable 对象的简单方法

    假设我有一个这样的业务对象 class Employee public string name public int id public string desgination public int grade List
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • 为什么 Cdecl 调用在“标准”P/Invoke 约定中经常不匹配?

    我正在开发一个相当大的代码库 其中 C 功能是从 C P Invoked 的 我们的代码库中有很多调用 例如 C extern C int stdcall InvokedFunction int 使用相应的 C DllImport CPlu
  • Project Euler #8,我不明白我哪里出了问题[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在做项目欧拉第八题 https projecteuler net problem 8 其中我得到了这个大得离谱的数字 7316
  • 英文日期差异

    接近重复 如何计算相对时间 https stackoverflow com questions 11 how do i calculate relative time 如何在 C 中计算某人的年龄 https stackoverflow c
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • 如何停止无限循环?

    我正在编写一个程序 该程序将计算三角形或正方形的面积 然后提示用户是否希望计算另一个 我的代码已经运行到可以计算任一形状的面积的程度 但随后不再继续执行代码的其余部分 例如 如果选择了正方形 则计算面积 然后返回到正方形边长的提示 我假设这
  • 为什么以下 C 程序会出现总线错误?

    我认为这是第一个失败的 strtok 调用 好久没写C了 有点不知所措 非常感谢 include
  • 使用 using 声明时,非限定名称查找如何工作?

    根据 C 标准 这是格式错误还是格式良好 namespace M struct i namespace N static int i 1 using M i using N i int main sizeof i Clang 拒绝它 GCC
  • 使用未分配的局部变量

    我遇到了一个错误 尽管声明了变量 failturetext 和 userName 错误仍然出现 谁能帮帮我吗 Use of Unassigned local variable FailureText Use of Unassigned lo

随机推荐

  • CGAL例程:地理信息系统----点云数据生成DSM、DTM、等高线和数据分类

    作者 西蒙 吉罗多 链接 CGAL 5 4 Manual GIS Geographic Information System 目录 1 概述 2 不规则三角形网数据表示 TIN 3 数字表面模型表示 DSM 4 数字地形模型表示 DTM 4
  • 图像语义分割论文(二)DFANet

    DFANet Deep Feature Aggregation for Real Time Semantic Segmentation 总结 精度不错 实时性也好 有必要试试CPU的运行速度 技巧 多分支 目前实时语义分割主要包含三种思路
  • Converting Phase Noise to Random Jitter(TIE)

    该篇介绍了相位噪声 Phase Noise 和帕塞瓦尔定理 Parseval s theorem 推导了Phase Noise to Time Jitter rms 的转换过程 以及用ADI芯片demo的Phase Noise估算Jitte
  • OSI七层与TCP\IP协议

    本文为个人记录 记录于2022 10 31 目录 一 什么是OSI七层模型 二 什么是TCP IP协议 1 TCP IP常用协议 2 数据封装和解封装过程 分层思想 为什么要分层 将复杂的流程分解为几个功能相对单一的子过程 整个流程更加清晰
  • postgresql怎样查看数据库是否处于主从结构

    执行以下命令 ps aux grep postgres 如出现postgres wal receiver process说明此节点的数据库处于从服务器状态 无法进行修改
  • 2020——奇安信技术支持笔试题摘要

    1 常见应用层协议端口号 TCP和UDP使用IP协议从一个网络传送数据包到另一个网络 把IP想像成一种高速公路 它允许其它协议在上面行驶并找到到其它电脑的出口 TCP和UDP是高速公路上的 卡车 它们携带的货物就是像HTTP 文件传输协议F
  • 超级好用的一些网站

    免费在线工具网站 功能 地址 免费在线音频编辑 https mp3cut net cn 免费pdf翻译 https www deepl com translator files 免费pdf转word pdf转word 免费音乐下载 http
  • 制作基于XKT-510和T3168芯片的无线供电模块

    制作基于XKT 510和T3168芯片的无线供电模块 制作无线供电模块 进展记录更新 简书上更新比较快 链接 2017年9月6日 19 27 56 还是简书的Markdown编辑器好用啊可以直接粘贴图片不用一张张上传所以先发布在这了再搬到c
  • vscode 画流程图

    文章目录 1 安装插件 draw 2 新建文件 3 开始画图 4 另存为图片 vscode可以画流程图了 只需要安装插件就可以了 1 安装插件 draw 2 新建文件 3 开始画图 4 另存为图片
  • js声明函数(function)和变量(variable)不得不防的坑

    在工作中初级程序员容易忽略的细节就是函数和变量的声明都存在提升 而且他们之间的提升是不同的 请看下面的演示 function funa console log funa 函数声明 function funb console log funb
  • ChatGPT + MindShow搞定PPT制作

    一 获取PPT内容大概 1 进入chatgpt 官网 http chat openai com 账号密码登录 2 获取PPT内容 向他提问 提问格式如下 整理一份PPT大纲 主题是 如何使用热门AI工具 回答内容采用Markdown的形式
  • 【简单又有趣】Python五个迷你小项目,即学即用,还不赶紧码住(附源码)

    目录 前言 一 猜数字游戏 二 骰子模拟器 三 故事生成器 四 自动发送邮件 五 Hangman 总结 前言 Python编程语言中 我最喜欢的就是Python的各种第三方库 能够完成很多操作 下面就给大家介绍5个通过Python构建的项目
  • 2013年11月26日星期二(四元数)

    这一节 应该是个一点点进行 QUAT q1 0 0 0 0 先看下QUAT数据类型 四元数 typedef struct QUAT TYP union float M 4 struct float q0 VECTOR3D qv struct
  • 若依前后端分离代码生成

    去代码生成器界面 点击导入按钮 选择你想生成的数据库表 选择好之后 生成 会下载一个文件夹 包括SQL 前端代码和后端代码 只需要放到相应文件夹下面就可以了 vue是前端代码 放到ruoyi ui文件中 main是后端代码 那些mapper
  • vue.js鼠标移入变换样式,鼠标移出去除样式(active)实现方法

    鼠标移入添加class样式 HTML HTML绑定事件 加入或者移出class为active span class things 报事 span span class things 报修 span 注意这里v on不能直接省略为 我也不知道
  • Javascript数组与字典用法分析

    http www 68idc cn help makewebs javascript 20141214142024 html 这篇文章主要介绍了Javascript数组与字典用法 以实例形式较为详细的分析了Array作为数组与字典的不同用法
  • Chrome 扩展程序开发

    按chrome开发规范 我们首先建一个文件夹 如D AutoClickDemo 在该文件夹下新建一个名为manifest json的文本文件 并按实际情况放一个图片文件 作为插件的图标 然后新建一个名为myscript js的js脚本文件
  • SQL查询一个表中根据其中一个列的属性来拼接多个列并SELECT INTO 新表显示

    将同一个表中 不同 Group 属性的添加列分成一整行 SELECT INTO VP Temp FROM SELECT DISTINCT A ID A TypeName A ItemType A isBad A sNo sNo1 A Che
  • C++ 类的静态成员详细讲解

    在C 中 静态成员是属于整个类的而不是某个对象 静态成员变量只存储一份供所有对象共用 所以在所有对象中都可以共享它 使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则 保证了安全性还可以节省内存 静态成员的定义或声明要加个关键st
  • C++控制台输入

    我们在刷牛客网的题目时 经常遇到多组输入 执行到文件结束 下面介绍几种写法 1 C语言的输入多个整数 while scanf d n EOF 为End Of File的缩写 通常在文本的最后存在此字符表示资料结束 code 2 C 输入字符