2014-01-19 12:26:49
大学时候我也学过谭浩强的C语言, 很喜欢C的简洁与类数学模式, 可后来实际工作时却一直用Fortran, 没用C做过实在的工作. Fortran是古老了点, 而且年纪大了很容易唠叨罗嗦, 却也平易近人, 不像C那样狂野不羁, 胡乱指点, 一不小心就落入陷阱. 前几天需要使用C代码, 写起来的时候才发现连最基本的文件读写都搞不定. 利用C读取文本数据, 总感觉比Fortran麻烦很多, 还不直观. 等我查阅了一下资料才发现, 原来也是有路的, 并没有我想得那么麻烦. 可惜这些技巧好像课本上的时候从没说到过.
C语音中最简单的文件读取函数是fscanf, 相当于Fortran的read, 使用起来稍微麻烦一点, 主要是fscanf读文件不会自动换行, 换行符也会读到, 如果想略掉换行的, 一行一行的读取, 可利用C的格式控制, 如下
Iret=fscanf(fp, "%lf %lf %*[^\n]", &x, &y);
这里我们以双精度格式%lf读入了两个double变量x, y(注意, 必须使用%lf读取double变量, 不可使用%f), 然后忽略掉直到行尾的其他内容, 同时整型Iret返回读取成功的次数. *表示忽略某项, 用[]表示某种范围, 更详细的请参考下面的资料.