首页 > 代码库 > c++中处理输入输出的方法
c++中处理输入输出的方法
在c中,常用的处理输入的函数有:scanf(),getchar(),gets();
在c++中,常用的处理输入输出的函数有:cin,getline
=======
#1知道输入数据组数n
scanf("%d",&n)
while(n--){
这里处理每一组输入,然后直接按照格式输入,没有必要开数组存储答案;
}
#2没有数据总数,以EOF结束
scanf();
while(scanf("%s|%d")!=EOF){
处理每一组数据,并输出
}
1 2 3
4 5 6
#include <iostream>#include <stdio.h>//#include "xiaozhao.h"using namespace std;int main(){ //Cxiao c; //c.test(); freopen("input.txt","r",stdin); int N; scanf("%d",&N); while(N--){ int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%d%d%d\n",a,b,c); } return 0;}
2,没有数据总数,以EOF结尾
1 2 3
4 5 6
#include <iostream>#include <stdio.h>//#include "xiaozhao.h"using namespace std;int main(){ //Cxiao c; //c.test(); freopen("input.txt","r",stdin); int a,b,c; while(scanf("%d%d%d",&a,&b,&c)!=EOF){ printf("%d%d%d\n",a,b,c); } return 0;}
--getchar()读入一个字符
while((ch=getchar())!=EOF){
}
--gets读入一行
while(gets(buf)!=NULL){
}
3,以0或-1结束的输入
while(scanf("%d",&n),n!=0){
}
1,2,3
4,5,6
-1
#include <iostream>#include <stdio.h>//#include "xiaozhao.h"using namespace std;int main(){ //Cxiao c; //c.test(); freopen("input.txt","r",stdin); int a,b,c; while(scanf("%d%d%d",&a,&b,&c) && (a!=-1 && b!=-1 && c!=-1)){ printf("%d%d%d\n",a,b,c); } return 0;}
============
getchar()和scanf(%c)的功能是一样的,都是接受从键盘输入一个字符;
需要注意的是,这两个函数读入的是输入流中当前位置的字符,比如:
scanf("%d",&n);
c = getchar();//
67/ (/表示换行),则n=67,c = /
===
同样gets和scanf(%s)类似
scanf("%s")在读入字符串时遇到空格或者回车是就会结束
get可以读入一样包含空格的字符串,遇到回车结束(不能读取回车);
=================
cin 读取字符串时,遇到空白符(空格,换行等)结束
===
char str[BUFFER];
while(cin>>str){}
===
getline读字符串时遇到换行符结束,用于读取一整行
char str[BUFFER];
while(cin.getline(str,BUFFER)){}
===
string str;
while(getline(cin,str)){}
c++中处理输入输出的方法