C++如何将文本文件中的数值读取并存入数组
读取空格分隔数值文本到数组的实现方案
通用实现逻辑
- 按行读取文本文件内容
- 对每一行内容按空格分割,得到单个数值字符串
- 将数值字符串转为对应类型的整数/浮点数
- 按行列顺序存入二维数组即可
你已经提前获取到了行数、列数参数,可以直接用对应参数控制数组维度和读取范围,无需额外探测文件格式。
常用语言实现示例
Python 实现
# 替换为你实际拿到的用户输入行数、列数 rows = 3 cols = 3 result_arr = [[0]*cols for _ in range(rows)] with open("你的文件存储路径.txt", "r", encoding="utf-8") as f: for row_idx in range(rows): # 读取一行后按空格拆分、转整数 line_nums = list(map(int, f.readline().strip().split())) for col_idx in range(cols): result_arr[row_idx][col_idx] = line_nums[col_idx] # 可打印验证结果 print(result_arr)
C 语言实现
#include <stdio.h> // 可根据实际业务需求调整最大支持的数组容量 #define MAX_SIZE 1000 int main() { // 替换为你实际拿到的用户输入行数、列数 int rows = 3, cols = 3; int result_arr[MAX_SIZE][MAX_SIZE]; FILE *fp = fopen("你的文件存储路径.txt", "r"); if(fp == NULL) { perror("文件打开失败"); return 1; } // fscanf自动跳过空格、换行等空白符,无需单独处理换行 for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { fscanf(fp, "%d", &result_arr[i][j]); } } fclose(fp); // 可打印验证结果 for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { printf("%d ", result_arr[i][j]); } printf("\n"); } return 0; }
Java 实现
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ReadNumToArray { public static void main(String[] args) throws FileNotFoundException { // 替换为你实际拿到的用户输入行数、列数 int rows = 3, cols = 3; int[][] resultArr = new int[rows][cols]; Scanner scanner = new Scanner(new File("你的文件存储路径.txt")); for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { resultArr[i][j] = scanner.nextInt(); } } scanner.close(); // 可打印验证结果 for(int i = 0; i < rows; i++) { for(int j = 0; j < cols; j++) { System.out.print(resultArr[i][j] + " "); } System.out.println(); } } }
注意事项
- 确认文件路径填写正确,使用相对路径时要核对代码执行目录和文件存储目录是否一致
- 如果文件存在多余空行、非数值字符,建议先做格式校验和异常捕获,避免读取报错
- 若存储的是浮点数,将代码中对应int类型替换为float、double即可
内容的提问来源于stack exchange,提问作者berkin_ozdemir
相关产品推荐
相关产品推荐

