如果我的文件包含浮点数这样的行:
4.5 -3.2 3.3 5.62 0.56 3.231
5.632 -4.56 2 5.8212 4 6.7
如何逐行读取并拆分数字以将它们保存在数组中(它们由1个制表符分隔)。
谢谢
编辑:
我做了以下工作,感谢大家的帮助
#include <stdio.h>
#include <stdlib.h>
int main(){
float array[2][6];
FILE *f;
f=fopen("input.txt", "r");
int i = 0;
int j = 0;
for(i=0; i<2; i++){
for(j=0;j<6;j++){
fscanf(f,"%f",&array[i][j]);
}
}
for(i=0; i<2; i++){
for(j=0;j<6;j++){
printf("%f ", array[i][j]);
}
}
}
答案 0 :(得分:1)
答案 1 :(得分:0)
有很多方法可以做到这一点。如果您可以依赖于您描述的格式化输入,那么scanf()
可能是最简单的工作方式。每个数字格式的细节变化的事实不是障碍。例如:
float array[2][6];
for (int i = 0; i < 2; i += 1) {
int result = scanf("%f%f%f%f%f%f", &array[i][0], &array[i][1], &array[i][2],
&array[i][3], &array[i][4], &array[i][5]);
if (result < 6) {
/* handle error or EOF or malformed input */
}
}
scanf()
会在大多数字段类型之前自动忽略前导空格(包括换行符),并在空白处打破大多数类型的字段。它返回成功扫描和分配的字段数,或EOF
if
发生错误或在任何字段成功匹配之前到达文件末尾。