c语言输入一行未知个数数字存入数组

2023-11-15

转载https://www.cnblogs.com/wd1001/p/4826855.html

一直有个疑问输入一行数字存入数组时若不知道数字的个数怎么办,最容易想到的办法就是接收字符然后转化为数字,但这样太过麻烦。

今天上网查了下,说可以用ungetc()函数将字符送回输入流,在这里总结归纳一下

此外还意外的解决了另外一些以前遇到的问题,也是在调试代码时发现的,用此段代码可以用除了空格以外的字符作为分隔符,而且分隔符的长度也可以很长:如输入12qwertyuiop34asdfghjkl123,23zxc45  最后得到的数组为:a[0]=12,a[1]=34,a[2]=123,a[3]=23,a[4]=45

#include<stdio.h>
#include<ctype.h>
int main()
{
	int a[1000];
	char c;
	int i = 0;
	int n = 0;
	while ((c = getchar()) != '\n')
	{
		if (isdigit(c))
		{
			ungetc(c, stdin);//将c送回输入流
			scanf("%d", &a[n++]);
		}	
		
	}
	     for (i = 0; i < n; i++)
		     {
		         printf("%d ", a[i]);
		     }
	     return 0;
	
}

  

转载于:https://www.cnblogs.com/zhiliang9408/p/11518910.html

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

c语言输入一行未知个数数字存入数组 的相关文章

  • C++_生成随机字符串

    include
  • C/C++语言实现WiFi(socket)数据收发(客户端和服务端)

    目录 客户端 client 服务端 server C C 实现TCP通信 接收WIFI数据 编程环境 VC 6 0 手机端 使用WiFi调试助手 提示 整个过程在局域网中进行 很多编程语言都可以实现socket通信 本博客将通过C C 实现
  • C++操作SQLite数据库

    准备工作 在使用C 操作SQLite之前 需要获得sqlite3 h sqlite3 lib sqlite3 dll 大家可以在 这里 下载 并将这3个文件导入VC 工程中 其中sqlite3 dll文件放到Debug文件夹里 SQLite
  • 多线程系列之——事件内核对象

    所有内核对象里面事件内核对象是最简单的一个 它包括一个使用计数 还有两个布尔值 一个布尔值用来表示事件是手动重置事件还是自动重置事件 另一个布尔值表示当前是否处于触发状态 当一个手动重置事件被触发的时候 所有等待该事件的线程都能变成调度状态
  • 无法打开源文件<sys/time.h>,但是用time.h编译就会出错,缺少gettimeofday()

    因为sys time h是uinx系统下的库文件 而现在使用的平台是在windows 由于未指明程序运行的系统 导致找不到对应的头文件 需要重新实现gettimeofday 函数 define WIN32 include
  • 【C++】VS code如何配置使用C++(手把手教学)

    博 主 米码收割机 技 能 C Python语言 公众号 测试开发自动化 获取源码 商业合作 荣 誉 阿里云博客专家博主 51CTO技术博主 专 注 专注主流机器人 人工智能等相关领域的开发 测试技术 VS code如何配置使用C 手把手教
  • 经典面试题之new和malloc的区别

    new和malloc的区别是C C 一道经典的面试题 我也遇到过几次 回答的都不是很好 今天特意整理了一下 0 属性 new delete是C 关键字 需要编译器支持 malloc free是库函数 需要头文件支持 1 参数 使用new操作
  • C++中的RTTI

    文章目录 dynamic cast运算符 指针类型的dynamic cast 引用类型的dynamic cast typeid运算符 使用RTTI type info类 参考资料 RTTI Runtime Type Information
  • 【干货】Chrome插件(扩展)开发全攻略(不点进来看看你肯定后悔)<转>

    干货 Chrome插件 扩展 开发全攻略 不点进来看看你肯定后悔 写在前面 我花了将近一个多月的时间断断续续写下这篇博文 并精心写下完整demo 写博客的辛苦大家懂的 所以转载务必保留出处 本文所有涉及到的大部分代码均在这个demo里面 h
  • mfc窗口创建的create与oncreate

    在view类中 create 是虚函数由框架调用 是用来 生成一个窗口的子窗口 oncreate 消息响应函数 是用来 表示一个窗口正在生成 某个CWnd的Create函数由当前CWnd的Owner调用 而在CWnd Create中 又会调
  • 【C/C++】 - Linux下查找函数头文件 以及 man命令拓展

    背景 比如现在需要找C语言 sleep函数的头文件 使用man来查找 可以先man sleep 可以发现出来的默认是sleep 1 是一个User Commands 明显不是我们需要的 这里提示了 看sleep 3 那我们查看下sleep
  • 虚函数不能声明为static

    虚函数申明为static报错 class Foo public Foo default static virtual Foo int main Foo foo return 0 main cpp 10 25 error member Foo
  • C++中的并发多线程网络通讯

    C 中的并发多线程网络通讯 一 引言 C 作为一种高效且功能强大的编程语言 为开发者提供了多种工具来处理多线程和网络通信 多线程编程允许多个任务同时执行 而网络通信则是现代应用程序的基石 本文将深入探讨如何使用C 实现并发多线程网络通信 并
  • C/C++编程:令人印象深刻的高级技巧案例

    C C 编程语言在软件开发领域有着悠久的历史 由于其高效 灵活和底层访问能力 至今仍然被广泛应用 本文将介绍一些在C C 编程中令人印象深刻的高级技巧 帮助读者提升编程水平 更加高效地使用这两种强大的编程语言 一 指针运算与内存管理 C C
  • C/C++编程中的算法实现技巧与案例分析

    C C 编程语言因其高效 灵活和底层的特性 被广大开发者用于实现各种复杂算法 本文将通过10个具体的算法案例 详细探讨C C 在算法实现中的技巧和应用 一 冒泡排序 Bubble Sort 冒泡排序 Bubble Sort 是一种简单的排序
  • C 语言运算符详解

    C 语言中的运算符 运算符用于对变量和值进行操作 在下面的示例中 我们使用 运算符将两个值相加 int myNum 100 50 虽然 运算符通常用于将两个值相加 就像上面的示例一样 它还可以用于将变量和值相加 或者将变量和另一个变量相加
  • C 语言运算符详解

    C 语言中的运算符 运算符用于对变量和值进行操作 在下面的示例中 我们使用 运算符将两个值相加 int myNum 100 50 虽然 运算符通常用于将两个值相加 就像上面的示例一样 它还可以用于将变量和值相加 或者将变量和另一个变量相加
  • C++ 字符串比较------strcmp函数和strncmp函数

    strcmp 函数原型 int strcmp const char str1 const char str2 功能 strcmp函数会按照字典顺序逐个比较两个字符串的字符 直到遇到不同的字符或者遇到字符串结束符 0 返回值 该函数返回值如下
  • C++中的引用

    一 引用的概念 引用不是新定义一个变量 而是给已有变量取一个别名 编译器不会为引用变量开辟内存空间 而和它引用的变量共用一块内存空间 注意 由于C 兼容C 所以 既可以是引用符号 也可以是取地址 int a 0 int b a cout l
  • 在 Solaris 上,使用 gcc 编译的库与使用 cc 生成的库的使用方式是否相同?

    我目前正在尝试编译 libxml2在 Solaris 上 当我运行源代码提供的 configure 脚本时 会自动使用 gcc 和 g 编译器 但是 我想使用 cc 和 CC 编译器 所以我跑 configure CC cc CXX CC

随机推荐

  • Tomcat闪退的解决方法

    Tomcat闪退 在Tomcat的bin目录中的startup bat中 添加 set JAVA HOME E Program Files Java jdk 8 set CATALINA HOME E Users a eclipse Tom
  • 威胁快报

    一 背景 近日阿里云安全团队发现了一起利用多个流行漏洞传播的蠕虫事件 黑客首先利用ThinkPHP远程命令执行等多个热门漏洞控制大量主机 并将其中一台 肉鸡 作为蠕虫脚本的下载源 其余受控主机下载并运行此蠕虫脚本后 继续进行大规模漏洞扫描和
  • Vue2.0创建一个新项目

    Vue2 0创建一个新项目 一 安装脚手架 一切的一切都是需要提前安装好node哦 不会安装和配置的可以看 Node初次安装配置 个人博客 Node初次安装配置 CSDN win R输入cmd 打开终端 在终端输入 npm install
  • 判断一个整数是否是回文数

    问题 输入一个整数 10位以内 也可自己改用更多位 需要修改类型 判断是否是回文数 include
  • 关于计算机的小故事案例,小故事分镜头脚本范例两分钟4399奶块电脑

    PublicSubFocusMe ctlNameAsControl WithctlName SelStart 0 SelLength Len ctlName EndWith EndSub Nowaddacalltothissubroutin
  • zigzag扫描的matlab实现

    zigzag扫描的matlab实现 zigzag的扫描方式如下图所示 以 4 4 为例 下图是matlab中数组各位置的索引值 用横纵坐标来分析 2 3 4 5 6 7 8 1 1 1 2 3 1 4 1 4 2 3 4 4 4 2 1 2
  • 局域网、以太网、无线局域网学习笔记

    还有一年选择院校 加油 文章目录 局域网基本概念和体系结构 局域网 局域网拓扑结构 局域网的传输介质 局域网介质访问控制方法 局域网的分类 IEEE 802 MAC子层和LC子层 小结思维导图 以太网 以太网概述 以太网提供无连接 不可靠的
  • 通过按钮动态改变 el-dialog 的宽度

    1 按钮
  • Ubuntu不能进入NTFS分区(error mounting)

    Ubuntu不能进入NTFS分区 error mounting 装了Windows10与Ubuntu双系统后 在Ubuntu系统下想进入Windows的某个NTFS分区 点击时却出现下面错误 也可能在挂载移动硬盘时出现如下错误 Error
  • 金蝶KIS专业版二次开发探索

    1 前言 作为软件服务 有时候我们接受的任务是一个全新的 开发团队内没有人有相关经验的这么一个任务 这时候无论对于我们本身还是对于团队来说 都面临着一个新的挑战 如何在没有做过此类任务情况下凭借一些基本经验完成任务 顺利实现给客户的交付 我
  • 智能合约漏洞——短地址攻击

    基础知识 严格意义来说 短地址 参数攻击并不算智能合约的漏洞 这是一个应用上的接口数据处理问题 在介绍过得ERC20模板智能合约 其中有个transfer函数 其定义如下 function transfer address to uint2
  • WinForm 编程中控件的使用小技巧(splitter实现窗口分区域,改变Button的形状)

    一 Splitter 控件的主要作用就是将窗口分区并可以调节区域大小 比如 我想将窗口分为左右两个区域 并可以调节两个区域所占的比例 操作流程如下 1 新建一个窗口 Form1 2 在Form1中添加一个Panel控件Panel1 并将其D
  • IPv6的基本配置

    p拓扑图 AR1 interface GigabitEthernet0 0 0 ipv6 enable ipv6 address 2000 1 64 ipv6 route static 3000 64 2000 2 静态路由 AR2 int
  • BES2300x笔记(4) -- TWS组对与蓝牙配对(Peer or Pair傻傻分不清)

    哈喽大家好 这是该系列博文的第四篇 篇 lt lt 系列博文索引 快速通道 gt gt 首先上一个链接 TWS耳机火遍华强北 为何干不过苹果AirPods 一 前言 看到有 道友 在评论区留言 对TWS组对 BT配对以及回连流程部分很迷糊
  • PostgreSQL源码结构

    PostgreSQL的使用形态 PostgreSQL采用C S 客户机 服务器 模式结构 应用层通过INET或者Unix Socket利用既定的协议与数据库服务器进行通信 另外 还有一种 Standalone Backend 使用的方式 虽
  • Linux系统下JDK17安装+环境配置

    我们进入到cd usr lib 下然后创建一个jdk17的文件夹 mkdir jdk17 进入到jdk17目录下 下载jdk17包 wget https download oracle com java 17 latest jdk 17 l
  • 1600*C. Slava and tanks(思维)

    解析 如果n为奇数 则偶数位为奇数位少 1 则先轰炸偶数位 再轰炸奇数位 再一次轰炸偶数位 如果n为偶数 则任意顺序 于是无论奇偶 全部按照 偶 奇 偶 轰炸 则总次数为 n n 2 下取整 include
  • 使用python读取excel中的数据,并绘制折线图

    使用python读取excel中的数据 并绘制折线图 做实验的时候采集到一些数据 从文本拷贝到excel 然后从十六进制转换成十进制 图表是分析数据的有利工具 使用python绘制出的图表简明美观 所以我这次尝试一下 python新手 请多
  • WORD表格合并单元格并居中对齐

    捯饬了挺久 一直不能居中 表格的中间 1 合并单元格 然后就一直这样 解决方案
  • c语言输入一行未知个数数字存入数组

    转载https www cnblogs com wd1001 p 4826855 html 一直有个疑问输入一行数字存入数组时若不知道数字的个数怎么办 最容易想到的办法就是接收字符然后转化为数字 但这样太过麻烦 今天上网查了下 说可以用un