首页 > 代码库 > 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++中处理输入输出的方法