背景
在很多題目中都會需要連續讀入若干個數字,而數字的個數可能是未知的,這時候要怎麼辦呢?這裏假設需要讀入一行未知個數的數字。
從命令行讀入
方法一
先以字符的形式的讀入,再將字符轉換成數字
方法二
讀入一個數字,再讀入一個空格,再讀入一個數字...循環往復,直到讀到換行符爲止。
代碼示例
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;
}
文件內數據
運行結果