c语言输入一行未知个数数字存入数组
代码:
#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;}
c库函数isdigit():是头文件ctype.h中声明的一个函数。原型为:
int isdigit(int c);
作用:
判断c指定的字符是否为数字字符,即’0’~‘9’,如果是,返回1;否则,返回0。
isdigit函数的实现也比较简单,这样就可以:
int isdigit(int c)
{return (c>='0'&&c<='9');
}
c语言ungetc()函数:
ungetc是一个函数
功 能 把一个字符退回到输入流中du
用 法 int ungetc(char c, FILE *stream);
输入参数 c 要写入的字符,stream 文件流指针
输出参数 字符c - 操作成功,EOF - 操作失败
stdin
stdin是C语言中标准输入bai流,一般用于获取键盘输du入到缓冲区里的zhi东西。
访问stdin,可用stdio.h中提dao供的以下几个函数:
scanf、getchar来从stdin流中获取指定的数据。scanf根据第一个参数指定的格式符将数据读入后续参数指定的内存位置中;getchar从stdin流中读取一个字符并返回。
另外,可以使用一般的访问输入流的函数来访问stdin,比如:fscanf、fgetc,使用方法和scanf、getchar类似,只是多了一个参数指定文件流。当然,scanf和getchar的具体实现就是通过调用fscanf和fgetc,这样可以提高代码利用率。
最后,可以用fflush和rewind这两个函数来刷新stdin,来清空缓冲区中已有的内容,不过这种方法不是标准方法,当stdin被重定向到文件时,这会导致指针重新指向文件开头。
c语言输入一行未知个数数字存入数组相关推荐
- C++ 输入一行未知个数的整数
最近笔试的时候,编程题遇到这样要求的输入,需要输入一行整数,个数未知,然后整数之间用空格间隔,如下所示: 11 22 333 45 62 代码如下所示: int main() {vector<i ...
- C语言-输入一行英文字符串统计单词个数
C语言-输入一行英文字符串统计单词个数,单词之间以空格隔开 判断是否为单词的依据,通过一个flag标识,flag为0表示字符为空格,接下来出现不是空格,会将flag置为1 只有当flag为1且当前字符 ...
- C语言-输入任意多个数字,存到整型数组,支持任意间隔符,同时支持输入字母存到字符数组中
第一次在CSDN上写博客- 记录一下想了有那么久的,这串代码 起因是做应用密码学的作业时,有Vigenere密码的加密解密.仿射密码加密解密.Playfair算法.Hill密码 因为数据量比较大,要把 ...
- Java练习——输入n个数,存入数组,进行排序输出
题目:输入n个数,存入数组,进行排序输出 package paixu; import java.util.Scanner; public class paixu {public static void ...
- [C语言]指针之数组逆序函数:编写函数invert,将数组中的n个整数按相反顺序存放,要求用指针变量作为函数形参,并用指针的方法遍历该数组。在main函数中输入n个整数,存入数组a中;然后调用上述函
编写函数invert,将数组中的n个整数按相反顺序存放,要求用指针变量作为函数形参,并用指针的方法遍历该数组. 在main函数中输入n个整数,存入数组a中:然后调用上述函数处理数组a,最后逐个输出数组 ...
- C语言输入一行字符,分别统计出其中英文字母,空格
C语言输入一行字符,分别统计出其中英文字母,空格 注意:while((c=getchar())!='\n') 表示在终端输入一串字符串后,直到输入回车,然后将字符串添加到内存缓冲区中,再循环把字符取出 ...
- c语言 输入一行字符,分别统计出其中英文字母 空格 数字和其他字符的个数
输入一行字符,分别统计出其中英文字母.空格.数字和其他字符的个数. 解:程序: #include <stdio.h> int main() { char c; int letters=0, ...
- C语言输入一行数据分别统计出其中英文字母、 空格、数字和其他字符的个数并输出结果
#输入一行数据(包括数字,英文字母,常见字符,空格),分别统计出其中英文字母. 空格.数字和其他字符的个数并输出结果:再把其中的数字按顺序输出出来 ##代码部分: #include <stdio ...
- C语言 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
方法一:常规计算 #include <stdio.h> int main(){char c;int letters=0,space=0,digit=0,other=0;printf(&qu ...
最新文章
- P4619 [SDOI2018]旧试题(莫比乌斯反演,建图优化三重枚举,三元环计数,神仙好题,超级清晰易懂)
- 正则表达式 特殊符号系列 通配符系列
- JS实现上下左右四方向无间隙滚动
- 【渝粤教育】电大中专电商运营实操 (18)作业 题库
- linux python tab补全_python交互模式下实现tab自动补全功能
- 分析arm linux启动打印信息
- paip.提升安全性---选择一个安全的加密算法
- java外文文献_spring框架外文文献 PDF 下载
- oracle扩容临时表空间,oracle临时表空间扩容
- 然爸读书笔记(2013-2)----格鲁夫给经理人的第一课
- vue 指定元素滚动到页面可视区域
- 查看san交换机端口流量_H3C 交换机telnet查看端口流量小工具
- 基于OpenGL的LS分形演示程序
- c语言中被3除 余数为2,五年级奥数题:带余数除法(B)
- 视频教程-零基础Redis详细案例讲解课程(第3季)---键管理、慢查询、管理命令-NoSQL
- 装逼利器之DLog -DEBUG
- 介质天线的设计原理_等离子体天线原理与设计.PDF
- 微软原中国公司总裁唐骏即将出任盛大总裁
- 服务器上的光信号出现红点怎么办,wifi 光信号显示红点(图文)
- 使用winScp实现跳板机登陆内网服务器