美文网首页
基本的数据输入输出

基本的数据输入输出

作者: ifeelok | 来源:发表于2017-06-02 19:07 被阅读0次

    输入多组数据,没数据结束标志或文件结束

    while(cin>>a>>b)

    #include <iostream>
    using namespace std;
    int main(){
        int a,b;
        while(cin>>a>>b) cout<<a+b<<endl;
        return 0;
    }
    

    输入多组数据,有结束标志

    多组输入,输入整数n(n<1000000),以0结束
    C++语句:while(cin>>n,n)
    或:
    cin>>n;
    while(n)
    {……… cin>>n; }

    输入数据有多组,每组一行,为两个整数A和 B,以一个空格分隔。输入以0 0结束。所有数据保证在int类型表示范围内。
    C++语句:
    while ((cin>>a>>b)&&(a||b))
    或:
    cin>>a>>b;
    while (a||b)
    {………………….. cin>>a>>b; }

    读入字符串相关

    参考 C/C++读入多行字符串string
    http://blog.csdn.net/summerfanl/article/details/52121566

    #include<iostream>    
    #include<sstream>        //istringstream 必须包含这个头文件  
    #include<string>    
    using namespace std;    
    int main()    
    {    
        string str="i an a boy";    
        istringstream is(str);    
        string s;    
        while(is>>s)    
        {    
            cout<<s<<endl;    
        }      
    }   
    

    返回array

    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    //return a 1d array
    int *bigger_one(int* arr, int n){
        int *a=(int *)malloc(2*sizeof(int));
        int maxNum=0, maxIndex, i;
        for(i=0;i<n;i++){
            if(arr[i]>maxNum){
                maxNum=arr[i];
                maxIndex=i+1;
            }
        }
        a[0]=maxNum;
        a[1]=maxIndex;
        return a;
    }
    
    int main(){
        int test[3]={5,2,9};
        int* ans=bigger_one(test,3);
        int i;
        for(i=0;i<2;i++) cout<<ans[i]<<endl;
        free(ans);
        return 0;
    }
    

    利用指针函数,并结合动态内存。
    int *fun()
    {
    声明一个动态数组 a;
    return a;
    }

    void main()
    {
    用指针调用函数 int *p=fun();
    释放该指针 free(p); (相当于释放了指针函数里面的动态数组)
    }

    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    //return 2d array, find the biggest num and its location in every row
    int **da(int** arr,int n,int m){
        int **data;
        data=(int**)malloc(n*sizeof(int*));
        for(int i=0;i<n;i++){
            data[i]=(int *)malloc(2*sizeof(int));
        }
        for (int i=0;i<n;++i)  
        {  
            int maxNum=0;  
            for (int j=0;j<m;++j)  
            {  
                //这里改为arr[i][j]则报错
                if (*((int *)arr+m*i+j)>maxNum)  
                {  
                    maxNum=*((int *)arr+m*i+j);  
                    data[i][0]=maxNum;data[i][1]=j+1;  
                }  
            }
        }  
        return data;
    }
    
    int main(){
        int mat[2][3]={
            {1,3,2},
            {5,6,7}
        };
        int** pmat=da((int**)mat,2,3);
        for(int i=0;i<2;i++){
            for(int j=0;j<2;j++){
                cout<<pmat[i][j]<<" ";
            }
            cout<<endl;
        }
        for(int i=0;i<2;i++){
            free(pmat[i]);
        }
        free(pmat);
        return 0;
    }
    

    以上代码参考:http://blog.csdn.net/robert_chen1988/article/details/53548848

    相关文章

      网友评论

          本文标题:基本的数据输入输出

          本文链接:https://www.haomeiwen.com/subject/oisufxtx.html