本文主要是介绍scanfcin巧妙应对字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天写题的时候,遇到一些比较奇葩的输入,需要输入”string+(x,y)+num“,例如:saidhslkfb (1,2) 85
用cin的时候就特别不好处理多余的字符。但是我后来发现有特别好的scanf可以直接处理这种情况。
char s[100];
if(scanf("%s (%d,%d) %d",s,&x,&y,&num)==4){printf("%s\n",s);printf("%d\n%d\n",x,y);printf("%d\n",num);
}
需要注意的是s是字符数组,是早就分配好内存的,大家记得提早预估好空间内存。
——————————我是分割线———————–
还有遇到输入带空格的字符串
例如:hbsjabh iuhndskl 85
cin遇空格停止
所以,大家可以采用
string s;
getline(cin,s);
但是刚开始输入的时候,可能会读入到上一个输入的换行,所以记得getchar()
即:
getchar();
while(k--){getline(cin,s);
}
cin,scanf各有好处,写题的时候大家看着用吧!
第一次写博客,有错的地方欢迎大家指正!
这篇关于scanfcin巧妙应对字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!