时间:2021-05-20
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;}以上思路仅供参考,如果有更好的方案,欢迎提出和探讨。希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
以C语言为例,分隔符有逗号、空白符、分号和冒号,逗号作为分隔符用来分隔多个变量和函数参数;空白符常用来作为多个单词间的分隔符,也可以作为输数据时自然输入项的缺省
在C语言中是用printf函数进行输出,用scanf函数进行输入的。C++保留了C语言的这一用法。scanf函数一般格式是:scanf(格式控制,输出表列)pr
在C语言中是用printf函数进行输出,用scanf函数进行输入的。C++保留了C语言的这一用法,在此只作很简单的介绍。scanf函数一般格式是:scanf(格
逗号分隔值(Comma-SeparatedValues,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)
在输入小数时,用户可以向平常一样使用小数点,还可以利用逗号分隔千位、百万位等,当输入带有逗号的数字时,在编辑栏并不显示出来,而只在单元格中显示。当你需要输入