最好的是製作一個函數,逐行讀取一個文件,並將每行元素放入一個數組(如果您只是打印只是打印它不存儲在數組中)。我使用c函數而不是C++流因爲對於大數據它們是速度更快。功能應該使用龜etc用於系統fgetc_unlocked正常工作的大數據。如果當它比的fscanf快,那麼你應該更換到龜etc
-5 -6 2 -1 4
1 2 3 4
假設輸入像並存儲在input.txt中。只需在您的目錄中輸入input.txt並在相同目錄中運行以下代碼即可。您可以稍後再進行更改如何使用數字
#include<iostream>
#include<cstdio>
using namespace std;
#define GC fgetc // replace with fgetc_unlocked if it works in your system(Linux)
//This function takes a line of f and put all integers into A
//and len is number of elements filled
void getNumsFromLine(FILE* f, int *A, int& len){
register char ch=GC(f);
register int n=0;
register bool neg = false;
len=0;
while(ch!='\n'){
while(ch !='-' && (ch>'9' || ch<'0')) ch=GC(f);
if(ch=='-') {
neg = true;
ch = GC(f);
}
while(ch>='0' && ch<='9'){
n = (n<<3)+(n<<1)+ch-'0';
ch = GC(f);
}
if(neg) {
n=-n;
neg=false;
}
A[len++]=n;
n=0;
}
}
int main(){
FILE* f=fopen("input.txt", "r");
int A[10][2],len;
for(int i=0; i<2; i++){
getNumsFromLine(f, A[i], len);
for(int j=0; j<len; j++) cout << A[i][j] <<" ";
cout << endl;
}
fclose(f);
return 0;
}
你是什麼意思的「分裂爲數字」?你的意思是將它們轉換爲字符串? – CroCo