背景
在很多题目中都会需要连续读入若干个数字,而数字的个数可能是未知的,这时候要怎么办呢?这里假设需要读入一行未知个数的数字。
从命令行读入
方法一
先以字符的形式的读入,再将字符转换成数字
方法二
读入一个数字,再读入一个空格,再读入一个数字...循环往复,直到读到换行符为止。
代码示例
int a[100],t=1;
cin>>a[0];
while(cin.get()!='\n'){
cin>>a[t++];
}
从文件连续读入未知个数的数字
这个就简单了,因为fstream有一个函数可以判断是否到达了文件末尾,就是eof()这个函数,具体可看下面示例
#include<iostream>
#include<fstream>
using namespace std;
int main(){
// 创建文件对象
fstream infile("A2data.txt",ios::in);
int a[10],t=0;
// 当没有到达文件末尾时,连续读入数据
while(!infile.eof()){
infile>>a[t++];
}
for(int i=0;i<t-1;i++)
cout<<a[i]<<" ";
return 0;
}
文件内数据