C++連續讀入個數未知的數字

背景

在很多題目中都會需要連續讀入若干個數字,而數字的個數可能是未知的,這時候要怎麼辦呢?這裏假設需要讀入一行未知個數的數字。

從命令行讀入

方法一

先以字符的形式的讀入,再將字符轉換成數字

方法二

讀入一個數字,再讀入一個空格,再讀入一個數字...循環往復,直到讀到換行符爲止。

代碼示例

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;
}

文件內數據

運行結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章