当前位置: 首页 > news >正文

C语言中的输入控制重要基础

在C语言编程中,处理输入数据是一个常见的任务。根据不同的情况,我们可以采用不同的输入控制方法。本文将介绍三类输入控制方式,分别是已知数据组数的输入、以特定符号结束的输入,以及以EOF结束的输入。

1. 已知数据组数的输入

在某些情况下,输入的数据组数是已知的。这种情况下,我们可以首先读取一个整数,表示数据组数,然后通过循环逐组处理数据。

示例代码:

#include <stdio.h>
int main() {int n; // 数据组数printf("请输入数据组数: ");scanf("%d", &n);  // 读取数据组数for (int i = 0; i < n; i++) {int num1, num2;printf("请输入第 %d 组数据 (两个整数,用空格分隔): ", i + 1);scanf("%d %d", &num1, &num2);  // 读取每组数据printf("第 %d 组数据是: %d 和 %d,和为: %d\n", i + 1, num1, num2, num1 + num2);}return 0;
}

输入输出示例:

请输入数据组数: 3
请输入第 1 组数据 (两个整数,用空格分隔): 5 10
第 1 组数据是: 5 和 10,和为: 15
请输入第 2 组数据 (两个整数,用空格分隔): 3 4
第 2 组数据是: 3 和 4,和为: 7
请输入第 3 组数据 (两个整数,用空格分隔): 8 2
第 3 组数据是: 8 和 2,和为: 10

解释:

  • 用户输入的数据组数为3,每组数据由两个整数构成,程序输出它们的和。
  • 第一步:通过 scanf("%d", &n) 读取数据组数 n
  • 第二步:使用 for 循环遍历 n 次,逐组读取数据并进行处理。

2. 以特定符号结束的输入

在一些情况下,输入的数据组数是不确定的,但可以通过某个特定符号(如 @-1 等)来结束输入。可以使用 while 循环和 scanf 函数来实现。

示例代码:

#include <stdio.h>int main() {char c; // 用于存储输入字符printf("请输入数据(输入 '@' 结束):\n");int count = 0; // 统计输入字符的数量while (scanf(" %c", &c) && c != '@') {  // 读取字符,直到遇到 '@'printf("你输入的字符是: %c\n", c);count++;}printf("你总共输入了 %d 个字符。\n", count);return 0;
}

输入输出示例:

请输入数据(输入 '@' 结束):
a
你输入的字符是: a
b
你输入的字符是: b
c
你输入的字符是: c
@
你总共输入了 3 个字符。

解释:

  • 用户输入多个字符,直到输入 @ 为止,程序统计并输出输入的字符数量。
  • 条件判断while 循环读取字符,直到遇到 @scanf(" %c", &c) 中的空格用于忽略前导空格和换行符注意%c前面的空格.
  • 处理输入:在每次循环中,程序输出读取的字符。

3. 以EOF结束的输入

在某些情况下,输入没有明确的结束项,而是通过文件结束符(EOF)来结束。可以通过检查 scanf 的返回值来实现此功能。在Windows系统中,可以通过 Ctrl + Z 组合键然后按回车键模拟EOF。

示例代码:

#include <stdio.h>
int main() {int num; // 存储输入的整数printf("请输入数字(Ctrl + Z 然后回车键 结束输入):\n");int sum = 0; // 存储输入数字的总和int count = 0; // 统计输入数字的数量while (scanf("%d", &num) != EOF) {  // 循环读取整数,直到EOFsum += num;count++;printf("你输入的数字是: %d\n", num);}if (count > 0) {printf("你总共输入了 %d 个数字,和为: %d\n", count, sum);} else {printf("没有输入任何数字。\n");}return 0;
}

输入输出示例:

请输入数字(Ctrl + Z 结束输入):
1
你输入的数字是: 1
2
你输入的数字是: 2
3
你输入的数字是: 3
Ctrl + Z
你总共输入了 3 个数字,和为: 6

解释:

  • 用户输入多个整数,程序在用户输入 EOF 时结束读取,并输出输入的数字总和和数量。
  • EOF检测:通过 scanf("%d", &num) != EOF 检查输入是否结束。
  • 数据处理:在每次成功读取整数后,输出该数字。

总结

在C语言中,输入控制的方式多种多样。根据数据的特点和输入的要求,可以选择合适的方法进行数据读取:

  1. 已知数据组数:使用 scanf 读取组数,然后循环处理每组数据。
  2. 特定符号结束:使用 while 循环,直到输入特定字符结束。
  3. EOF结束:使用 while 循环,检测输入是否结束。

这些方法能够帮助你灵活地处理输入数据,适应不同的需求和场景。

注解:
在格式字符串的开头添加空格,例如 scanf(" %c", &c),是为了忽略所有的前导空白字符(空格、换行符、制表符等)。这意味着在读取字符时,程序会自动跳过输入缓冲区中任何空白字符,直到找到一个非空白字符进行读取。这在处理用户输入时特别有用,可以防止用户意外输入空白字符导致的错误。

相关文章:

C语言中的输入控制重要基础

在C语言编程中&#xff0c;处理输入数据是一个常见的任务。根据不同的情况&#xff0c;我们可以采用不同的输入控制方法。本文将介绍三类输入控制方式&#xff0c;分别是已知数据组数的输入、以特定符号结束的输入&#xff0c;以及以EOF结束的输入。 1. 已知数据组数的输入 在…...

Vue 学习

使用 vue 创建一个项目 检查是否已经安装了 npm 和 node npm --version node --version 使用 npm 安装 vue npm install -g vue/cli 检查 vue 工具是否安装成功 vue --version 使用 vue 工具创建一个名为 vue-router-syntax 的项目 这是命令行的创建方式 vue create vu…...

Redis集群的两种方式

1.Redis集群 1.1 搭建主从集群 单节点Redis的并发能力是有上限的&#xff0c;要进一步提高Redis的并发能力&#xff0c;就需要搭建主从集群&#xff0c;实现读写的分离。一般情况下&#xff0c;主节点负责写操作&#xff0c;从节点负责读操作。而从节点如何得知数据呢&#xff…...

QT--基础

将默认提供的程序都注释上意义 0101.pro QT core gui #QT表示要引入的类库 core&#xff1a;核心库 gui&#xff1a;图形化界面库 #如果要使用其他库类中的相关函数&#xff0c;则需要加对应的库类后&#xff0c;才能使用 greaterThan(QT_MAJOR_VERSION, 4): QT wid…...

一、前后端分离及drf的概念

1.1什么是前后端分离 程序角度 前后端不分离&#xff1a;一个程序&#xff08;如django),接收请求处理HTML模版用户返回 前后端分离&#xff1a;两个程序 --前端&#xff1a;vue.js/react.js/angular.js --后端&#xff1a;Django drf(django rest framework) 2.专业角度 --…...

AI垃圾溢出识别摄像机

随着城市化进程的加快&#xff0c;垃圾处理成为城市管理中的一项重要工作。然而&#xff0c;垃圾桶溢出现象经常发生&#xff0c;给城市环境卫生和市民生活带来不便。为了解决这一问题&#xff0c;AI垃圾溢出识别摄像机 应运而生&#xff0c;利用人工智能技术&#xff0c;实现对…...

【抽代复习笔记】29-群(二十三):生成子群的两道例题及子群陪集的定义

例1&#xff1a;取S3的子集S {(12),(123)}&#xff0c;S的生成子群包含哪些元&#xff1f;一个群的两个不同的子集会不会生成相同的子群&#xff1f; 解&#xff1a;&#xff08;1&#xff09;S的生成子群就是S3。证明[有不理解之处可以回头看看第27篇笔记中生成子群的定…...

安全防护装备检测系统源码分享

安全防护装备检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…...

easyexcel常见问题分析

文章目录 一、读取数字多了很多小数位的精度问题 一、读取数字多了很多小数位的精度问题 浮点型转成BigDecimal的时候会出现精度问题&#xff0c;例如 这儿设置的实体类对象类型是String&#xff0c;默认用到的是StringNumberConverter转换器 2.1.4 版本 public class Strin…...

精通推荐算法31:行为序列建模之ETA — 基于SimHash实现检索索引在线化

1 行为序列建模总体架构 2 SIM模型的不足和为什么需要ETA模型 SIM实现了长周期行为序列的在线建模&#xff0c;其GSU检索单元居功至伟。但不论Hard-search还是Soft-search&#xff0c;都存在如下不足&#xff1a; GSU检索的目标与主模型不一致。Hard-search通过类目属性来筛选…...

Python知识点:如何使用Python进行卫星数据分析

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用Python进行卫星数据分析 卫星数据分析是地球观测领域的一项关键技术&a…...

Python实现Phong着色模型算法

目录 使用Python实现Phong着色模型算法引言Phong着色模型的基本原理1. 模型组成2. 公式 Phong着色模型的Python实现1. 向量类的实现2. 光源类的实现3. 材质类的实现4. Phong着色器类的实现 整体实现总结 使用Python实现Phong着色模型算法 引言 在计算机图形学中&#xff0c;光…...

异步框架 fastapi -- 连接mysql数据库

文章目录 docker部署mysqlfastapi连接mysql docker部署mysql 拉取mysql镜像 # 查看docker 服务状态 systemctl status docker systemctl start docker # 设置 开机启动 systemctl enable docker# 拉取mysql 镜像 docker search mysql:latest # 不指定版本时&#xff0c;默认…...

Spring 全家桶使用教程 —— 后端开发从入门到精通

Spring 全家桶是 Java 后端开发的利器&#xff0c;提供了从基础开发到复杂微服务架构的一整套解决方案。通过对各个 Spring 组件的掌握&#xff0c;开发者可以快速构建高效、稳定的企业级应用。本文将详细介绍 Spring 全家桶的各个组件&#xff0c;帮助开发者深入理解其核心功能…...

AI动漫转真人终极教程!3步做出爆款内容,音乐推广号变现

从小到大&#xff0c;我们看过的动漫、玩过的游戏有很多很多 但我们会发现里面的角色或者人物都是二次元的 我就会好奇这些动漫人物在现实中会长什么样 而现在&#xff0c;我们通过AI绘画竟然就能还原出来他们现实中的样子 除了动漫角色和游戏人物&#xff0c;古代的画像、…...

vue2 vconsole有助于移动端开发页面调试

项目场景&#xff1a; pc项目开发中&#xff0c;有浏览器自带的调试工具。但在移动端&#xff0c;就需要自己搭建调试工具了。vconsole一种非常方便的前端调试依赖库&#xff0c;有助于我们在移动端开发式进行调试&#xff0c;快速排查移动端问题。 搭建步骤 1、安装依赖库。…...

别再使用[]来获取字典的值了,来尝试一下这些方法

字典 在Python中&#xff0c;字典&#xff08;Dictionary&#xff09;是一种非常灵活的数据结构&#xff0c;用于存储键值对&#xff08;key-value pairs&#xff09;。每个键都是唯一的&#xff0c;并且与某个值相关联。字典是Python中处理映射关系&#xff08;即一个键对应一…...

如果你不愿意冒一切风险,就不要成为创业者:如何建立一个年收入 1800 万美元的支付业务

作者&#xff1a;Austin Mac Nab&#xff0c;VizyPay 的 CEO 兼创始人 在创业初期&#xff0c;如果有人告诉我&#xff0c;我需要冒一切风险才能成功&#xff0c;我大概会吓得绕道而行。但事实是&#xff0c;如果你不愿意冒一切风险&#xff0c;就不要成为创业者。本着这个信念…...

4.浮点数二分【求数的平方根】

模板 public class BinarySearch {// 检查x是否满足某种性质public static boolean check(double x) {// 实现具体的检查逻辑return false; // 这里仅为示例&#xff0c;实际根据需求修改}public static double bsearch_3(double l, double r) {final double eps 1e-6; // …...

简站wordpress主题产品多图ACF插件设置方法

此教程仅适用于演示站有产品多图的主题&#xff0c;演示站没有产品多图的主题&#xff0c;就别往下看了&#xff0c;省得浪费时间。 1、给产品添加轮播图 简站wordpress主题有多个产品图的主题&#xff0c;添加产品轮播图的具体方法如下&#xff1a; 1.2、选择产品分类 添加…...

三菱PLC与组态王四层电梯控制系统:详细图纸与IO分配解释

三菱PLC和组态王4层电梯四层电梯控制系统 我们主要的后发送的产品有&#xff0c;带解释的梯形图接线图原理图图纸&#xff0c;io分配&#xff0c;组态画面实验室四层电梯模型卡成狗的时候&#xff0c;真的恨自己当初梯形图只会写互锁单按钮那种幼儿园题。后来拆前辈的旧板子加…...

效率提升秘籍:利用快马AI生成自动化脚本高效管理50台云桌面

效率提升秘籍&#xff1a;利用快马AI生成自动化脚本高效管理50台云桌面 手动配置和管理大量云桌面效率低下&#xff0c;尤其是当需要同时管理50台甚至更多云桌面时&#xff0c;重复性的操作不仅耗时耗力&#xff0c;还容易出错。最近我在InsCode(快马)平台上尝试了一个自动化运…...

k8s中部署prometheus并监控k8s集群以及nginx案例

4台主机 node1主机&#xff1a;k8s集群中的master node2主机&#xff1a;搭建了harbor仓库&#xff0c;存储所需的docker镜像 test3、4主机&#xff1a;k8s集群中的woker 搭建prometheus https://github.com/prometheus-operator/kube-prometheus 获取prometheus压缩包的…...

卡尔曼滤波在无人机飞控和机器人SLAM里到底怎么用?一个实例讲透

卡尔曼滤波在无人机飞控中的实战&#xff1a;从IMU-GPS融合到状态估计 1. 无人机状态估计的工程挑战 当你在郊外试飞新组装的四旋翼无人机时&#xff0c;突然发现GPS信号出现波动&#xff0c;而IMU数据也开始漂移。这时飞控系统如何保持稳定的姿态控制&#xff1f;这个看似简单…...

在WinForm里玩转Halcon 3D点云:从C#代码导出到完整UI显示的保姆级避坑指南

在WinForm里玩转Halcon 3D点云&#xff1a;从C#代码导出到完整UI显示的保姆级避坑指南 当工业视觉项目需要处理复杂的三维场景时&#xff0c;Halcon的3D点云处理能力往往成为开发者的首选。但将Halcon的强大算法无缝集成到C# WinForm应用中&#xff0c;却可能遭遇一系列"…...

从理论到实践:基于状态观测器的闭环系统设计与MATLAB仿真

1. 当状态看不见时&#xff0c;我们如何控制一个系统&#xff1f; 想象一下你在驾驶一辆汽车&#xff0c;但仪表盘全部失灵——看不到车速、转速、油量&#xff0c;甚至连方向盘转角都不知道。这时候如果要保持车道&#xff0c;你会怎么做&#xff1f;这就是控制工程中经典的状…...

Kivy中文显示乱码?3步搞定字体配置(附免费字体下载)

Kivy中文显示乱码&#xff1f;3步搞定字体配置&#xff08;附免费字体下载&#xff09; 当你在Kivy应用中看到中文变成一堆问号或方框时&#xff0c;别急着怀疑人生——这通常是字体配置的小问题。作为Python生态中最受欢迎的跨平台GUI框架之一&#xff0c;Kivy默认使用Roboto字…...

别再只会让舵机转圈了!用Arduino和SG90实现精准角度控制的保姆级教程

从转圈到精准控制&#xff1a;Arduino与SG90舵机的高级应用指南 第一次接触舵机时&#xff0c;我们往往满足于让它简单地来回转动——这确实很有趣&#xff0c;就像给玩具注入了生命。但当你真正想用它构建一个机械臂、智能云台或是自动喂食器时&#xff0c;这种粗放的控制方式…...

TextInput Effects部署与测试:确保跨平台兼容性的完整流程

TextInput Effects部署与测试&#xff1a;确保跨平台兼容性的完整流程 【免费下载链接】react-native-textinput-effects Text inputs with custom label and icon animations for iOS and android. Built with react native and inspired by Codrops. 项目地址: https://git…...

突破内容采集瓶颈:XHS-Downloader的5大行业解决方案与效率提升指南

突破内容采集瓶颈&#xff1a;XHS-Downloader的5大行业解决方案与效率提升指南 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果作品、…...