C语言 scanf输入多个数字只能以逗号分隔的操作
C之scanf输入多个数字只能以逗号分隔,而不能用空格 TAB空白符分隔
#include <stdio.h> int main() { int num_max(int x,int y,int z); int a,b,c,max; scanf("%d,%d,%d",&a,&b,&c); max=num_max(a,b,c); printf("max=%d",max); return 0; } int num_max(int x,int y,int z) { int max=z; if(max<x)max=x; if(max<y)max=y; return(max); }
原因是scanf 对于数字输入,会忽略输入数据项前面的空白字符。因此只能以逗号分隔。
补充知识:c++中读入逗号分隔的一组数据
如题,在面试和实际应用中,经常会碰到一个场景:读入以指定符号间隔的一组数据,放入数组当中。
看了不少博客,总结了一个个人目前觉得比较简便的方法(其实和java比也一点不简便。。。。)
基本思路就是:将输入的数据读到string中,然后将string中的间隔符号用空格代替后,输入到stringstream流中,然后输入到指定的文件和数组中去
具体代码如下:
// cin,.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "iostream" #include <string> #include <sstream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { string strTemp; int array[4]; int i = 0; stringstream sStream; cin >> strTemp; int pos = strTemp.find(','); while (pos != string::npos) { strTemp = strTemp.replace(pos, 1, 1, ' '); //将字符串中的','用空格代替 pos = strTemp.find(','); } sStream << strTemp; //将字符串导入的流中 while (sStream) { sStream >> array[i++]; } for (int i = 0; i < 4; i++) { cout << array[i] << " "; } cout << endl; return 0; }
以上思路仅供参考,如果有更好的方案,欢迎提出和探讨。希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
解决scanf_s输入%d%c%d格式错误的问题
例题: 定义变量a,b,c,输入1+2,结果a=1,b=+,c=2 错误实例: int a,c; char b; scanf_s("%d%c%d",&a,&b,&c); 乍一看,没啥问题,但是一运行输入就会报错. 解决方案: 1.使用scanf,上边的代码就没问题 2.如果使用scanf_s,就要加上输入长度,如下 scanf_s("%d%c%d",&a,&b,1,&c); 补充知识:scanf("%d%d&
-
C语言清除scanf()缓存的案例讲解
又重新过一遍C语言,感觉每次重学C语言都有不同的感受,遇到了一个问题,就是scanf()这个问题,其实细究起来,也有很多可以值得深挖的,实际上每次细细的挖掘的话,都是对C语言的更透彻的认识. 那么下面我就对scanf()中清除输入缓冲区的方法讲解: 应用场景:我们使用多个scanf()的时候,如果输入缓冲区还有数据的话,那么scanf()就不会询问用户输入,而是直接就将输入缓冲区的内容拿出来用了,这就导致了前面的错误影响到后面的内容,为了隔离这种问题, 总的思想:通过各种方法将输入缓冲区的内容读
-
解决C语言中使用scanf连续输入两个字符类型的问题
昨天用C编程,遇到一个关于scanf的细节问题,假如运行如下程序: #include<stdio.h> int main() { char ch1,ch2; printf("Input for ch1:/n"); scanf("%c",&ch1); printf("ch1=%c/n",ch1); printf("Input for ch2:/n"); scanf("%c",&ch
-
C++ 输入scanf()和输出printf()的操作
在C语言中是用printf函数进行输出,用scanf函数进行输入的.C++保留了C语言的这一用法,在此只作很简单的介绍. scanf函数一般格式是: scanf(格式控制, 输出表列) printf函数的一般格式是 printf(格式控制,输出表列) [例3.4]用scanf和printf函数进行输入和输出. #include <iostream> using namespace std; int main( ) { int a; float b; char c; scanf("%d
-
c/c++ 利用sscanf进行数据拆分操作
sscanf使用示例 示例:使用sscanf分割文件中的数据,数据源示例如下 川EZ1E58,贵GQ7708,:1302 贵AE0996,:185 贵A0PJ06,贵JYN192,贵JYN192,:128 分割代码如下所示: #include <stdio.h> #include <string.h> int DealLine(char *StrLine) { // find : data save char Parkid[20] = ""; char *p =
-
C语言 scanf输入多个数字只能以逗号分隔的操作
C之scanf输入多个数字只能以逗号分隔,而不能用空格 TAB空白符分隔 #include <stdio.h> int main() { int num_max(int x,int y,int z); int a,b,c,max; scanf("%d,%d,%d",&a,&b,&c); max=num_max(a,b,c); printf("max=%d",max); return 0; } int num_max(int x,i
-
C语言实现输入两个数字将其按从小到大输出的方法
代码实例: 1.第一种方法(if) #include <stdio.h> int main() { int a , b; printf("请输入两个整数:"); scanf("%d%d",&a , &b); if(a > b){ int temp; temp = a; a = b; b = temp; printf("%d < %d \n", a , b); } } 源代码图片: 运行结果截图说明: 到此这
-
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
本文实例讲述了JavaScript控制输入框中只能输入中文.数字和英文的方法.分享给大家供大家参考,具体如下: 1.问题背景: 遇到这样一个问题:有一个输入框,要求只能输入中文.数字和英文(即过滤特殊字符串) 2.JS代码: function checkUsername() { //正则表达式 var reg = new RegExp("^[A-Za-z0-9\u4e00-\u9fa5]+$"); //获取输入框中的值 var username = document.getElemen
-
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
onlyNumber.html 测试代码: <html> <head> <script language="JavaScript" > function onlyNumber(obj){ //得到第一个字符是否为负号 var t = obj.value.charAt(0); //先把非数字的都替换掉,除了数字和. obj.value = obj.value.replace(/[^\d\.]/g,''); //必须保证第一个为数字而不是. obj.va
-
C语言数据输入与输出实例详解
C语言数据输入与输出实例详解 1 概论 C语言提供了跨平台的数据输入输出函数scanf()和printf()函数,它们可以按照指定的格式来解析常见的数据类型,例如整数,浮点数,字符和字符串等等.数据输入的来源可以是文件,控制台以及网络,而输出的终端可以是控制台,文件甚至是网页. 2 数据输出 从第一个c语言程序中,就使用了跨平台的库函数printf实现将一段文字输出到控制台,而实际上,printf()不仅可以将数据按照指定的格式输出到控制台,还可以是网页或者是指定的文件中,printf()函数执
-
c语言实现输入一组数自动从大到小排列的实例代码
如下所示: #include <stdio.h> main() { int x; printf("请输入要排序数字个数:"); scanf("%d",&x); int i,j,k,a,b,num[x]; printf("输入数据:"); for(i=0;i<x;i++) scanf("%d",&num[i]); for(j=0;j<x;j++) { for(k=j+1;k<x;k+
-
C语言 实现输入任意多个整数
有时候可能需要在每一行输入的整数不确定,回车作为结束符,整数中间用任意多个空格隔开. 代码如下: #include<cstdio> int main() { int num[1000]; char ch; do { scanf("%d",&a[i++]); }while((ch=getchar())!= '\n');// 这里用来判断是否输入了回车 return 0; } ------------------------------------------ whil
-
C语言实现简单的猜数字游戏
本文实例为大家分享了C语言实现简单的猜数字游戏的具体代码,供大家参考,具体内容如下 1.游戏介绍 此游戏是电脑随机生成一个1-99的数字(生成数字范围可自行更改),然后玩家一直猜数字,最终猜对为止.废话不多说,直接上完整代码. 2.游戏完整代码 #include<stdio.h> #include<time.h> #include<stdlib.h> int juge(int guess,int number) { int t=0; if(guess
-
C语言详解实现猜数字游戏步骤
目录 前言 一.猜数字游戏是什么 二.使用步骤 总结 前言 本文详细介绍了猜数字游戏的具体实现逻辑 一.猜数字游戏是什么 1.电脑自动生成一个1-100以内的数字 2.我们输入一个我们猜的数字 3.如果我们猜的数字比电脑随机生成的数字大,那么输出(猜大了) 4.如果我们猜的数字比电脑随机生成的数字小,那么输出(猜小了) 5.如此循环往复,猜到正确的数字之后游戏结束 二.使用步骤 1.首先应该打印菜单 代码如下 void menu() { printf("*********************
-
JavaScript使用键盘输入控制实现数字验证功能
现在有一个需求如下图: 产品经理说Card Number只能让输入数字(中间的空格是格式自加的,也是用js实现的),有时候我脑海中出现了个声音,啥玩意,加个type=number不就行了,事实发现图样图森破了,先不说type=number后面会有个上下标(虽然用css可干掉),但是这个类型是支持科学输入法的,就是小数点和e这样的是可以输入的,于是乎只能用其他的方式了,后来想用检索到输入了非数字就干掉,但是这样还是能输入,想法被打回,于是乎最终采用了键盘输入控制的办法,其实很简单,代码如下: va
随机推荐
- js css3实现图片拖拽效果
- JavaScript Uploadify文件上传实例
- Android编程之Activity中onDestroy()调用分析
- Session保存到数据库的php类分享
- python实现将汉字转换成汉语拼音的库
- 表格标签table深入了解
- Android图片处理:识别图像方向并显示实例教程
- JS获取URL中参数值(QueryString)的4种方法分享
- javascript 大中小字体显示实现代码
- 让微信小程序支持ES6中Promise特性的方法详解
- 实例讲解DataTables固定表格宽度(设置横向滚动条)
- jQuery.cookie.js使用方法及相关参数解释
- springMVC发送邮件的简单实现
- c# 数据类型占用的字节数介绍
- php 全局变量范围分析
- fetch 使用及如何接收JS传值
- 全面分析Java文件上传
- mpvue开发音频类小程序踩坑和建议详解
- 基于vue2.0实现仿百度前端分页效果附实现代码
- 浅谈Vue路由快照实现思路及其问题