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

基本的数据输入输出

作者: 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