輸入多組數(shù)據(jù),沒數(shù)據(jù)結(jié)束標(biāo)志或文件結(jié)束
while(cin>>a>>b)
#include <iostream>
using namespace std;
int main(){
int a,b;
while(cin>>a>>b) cout<<a+b<<endl;
return 0;
}
輸入多組數(shù)據(jù),有結(jié)束標(biāo)志
多組輸入,輸入整數(shù)n(n<1000000),以0結(jié)束
C++語句:while(cin>>n,n)
或:
cin>>n;
while(n)
{……… cin>>n; }
輸入數(shù)據(jù)有多組,每組一行,為兩個(gè)整數(shù)A和 B,以一個(gè)空格分隔。輸入以0 0結(jié)束。所有數(shù)據(jù)保證在int類型表示范圍內(nèi)。
C++語句:
while ((cin>>a>>b)&&(a||b))
或:
cin>>a>>b;
while (a||b)
{………………….. cin>>a>>b; }
讀入字符串相關(guān)
參考 C/C++讀入多行字符串string
http://blog.csdn.net/summerfanl/article/details/52121566
#include<iostream>
#include<sstream> //istringstream 必須包含這個(gè)頭文件
#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;
}
利用指針函數(shù),并結(jié)合動(dòng)態(tài)內(nèi)存。
int *fun()
{
聲明一個(gè)動(dòng)態(tài)數(shù)組 a;
return a;
}
void main()
{
用指針調(diào)用函數(shù) int *p=fun();
釋放該指針 free(p); (相當(dāng)于釋放了指針函數(shù)里面的動(dòng)態(tài)數(shù)組)
}
#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]則報(bào)錯(cuò)
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