0.00 882.197 8.35 877.375 15.66 871.794 ... 372.71 893.685
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
int main() {
const int MAX = 1000;
float arr1[MAX], arr2[MAX];
int i = 0;
ifstream fin("F:\\test.txt");
if (!fin) {
cerr << "Unable to open file";
return 1;
}
char line[256];
while (fin.getline(line, sizeof(line))) {
if (sscanf(line, "%f %f", &arr1[i], &arr2[i]) == 2) {
i++;
if (i >= MAX) break;
}
}
fin.close();
for (int j = 0; j < i; j++) {
cout << arr1[j] << " " << arr2[j] << endl;
}
return 0;
}
"%f %f" 自動跳過任意空白,健壯性強;== 2 確保兩列均成功讀取,跳過空行/異常行;MAX 防止數組越界,生產環境建議用 vector<float> 動態擴容。#include <fstream>
#include <vector>
#include <string>
#include <sstream>
#include <iostream>
int main() {
vector<float> col1, col2;
ifstream fin("F:\\test.txt");
string line;
while (getline(fin, line)) {
if (line.empty()) continue;
istringstream iss(line);
float v1, v2;
if (iss >> v1 >> v2) {
col1.push_back(v1);
col2.push_back(v2);
}
}
for (size_t i = 0; i < col1.size(); ++i)
cout << col1[i] << " " << col2[i] << '\n';
}
「按行讀取 + 字符串流解析」是處理列對齊文本文件的標準模式,兼顧健壯性與可讀性。優先使用 vector 替代定長數組。