首先,这是我的第一个 C 项目(也是我使用任何语言的第一个编程项目之一),因此,如果我的语法看起来很奇怪或者我做了一些奇怪的事情,我深表歉意。
我有一个使用三个输入文件的程序。每个文件包含一些数字:一些是整数,一些是 float 。我已经设法检查文件是否存在,但没有检查其他内容。如果不满足任何这些要求,程序应结束并相应地显示错误消息。我见过一些问题询问其中之一,但并不是所有问题都结合在一起。我看到的答案也需要退出一点空间。我希望用尽可能少的行数来完成这项工作。非常感谢您的帮助。
我一直在编写的脚本之一如下所示。如果输入文件不存在,它会给出错误消息,但我已经删除了检查 int 与 float 以及它们是否在范围内的尝试。
<小时/>#include "header.h"
void visualreader(int *x_range, int *y_range, int *z_range,
int *x_cells, int *y_cells, int *z_cells, int *time) {
// Scans the input file containing parameters for visualizing
// the velocity vector field
FILE *fp = fopen("visual_input.dat", "r");
if (fp) {
fscanf(fp, "%d %d %d\n", x_range, y_range, z_range);
fscanf(fp, "%d %d %d\n", x_cells, y_cells, z_cells);
fscanf(fp, "%d\n", time);
fclose (fp);
} else {
perror("error opening the file" );
}
}
最佳答案
check if an input file exist
fopen()
如果失败,将返回 NULL
,因此使用 fp
的条件是执行此操作的正确方法。
if the numbers in the file are int or float
您必须以字符串形式读取值,然后手动检查字符串中是否有 .
。老实说,如果这些值可以是 float ,那么就假设它们始终是 float 并按原样读取它们。在此阶段使程序复杂化以优化整数不会带来任何好处。
if they are within a range
对于读入的每个值(作为 float ),只需手动检查,例如:
if (x_range < minimum_value || x_range > maximum_value) {
error_routine(...);
}
关于c - 在 C : How do I check if an input file exist, 中,文件中的数字是 int 还是 float,以及它们是否在某个范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10572559/