c - 如何检测最后一个额外的空行并在 C 中忽略它(使用 getc)

标签 c

您好,我正在使用这段代码读取 txt 中的 float 。如果 txt 文件的末尾有多余的空白空行,程序会将其读取为 0.00000,这会影响我的计算 Last empty line

(#表示计算结束我添加注释行如果存在更新注释行)

我尝试了“getline”和其他我无法修复的函数

fptr = fopen(fileName,"r+"); 
    if(fptr == NULL){
        printf("Error!! Cannot open file: %s \n", fileName );
        return 1;
    }
    else {
        printf("File opened successfully\n");
        while((c = getc(fptr)) != '#' && c != EOF) {    

            fscanf(fptr,"%f" ,&arr[i]);      
            ++i;
        }
    }

最佳答案

检查 fscanf 的返回值——它应该在成功读取数字时返回 1,在空白行返回 0。

关于c - 如何检测最后一个额外的空行并在 C 中忽略它(使用 getc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42632659/

相关文章:

c - 在 C 语言中,为什么数组的地址等于它的值?

与 C 中的 recv() 混淆,是否存在底层输入缓冲区?数据来自哪里?

c - 如何从标准输出中删除显示的文本?

C语言 : there is a trailing character after the last character of my output

c - 使用数组读取和写入文本文件

c - 为什么这不能正确评估? (欧拉计划 9 - C)

c++ - 在 C 中解释 float 据

将字符串传递给 C 中的函数时出现冲突类型警告

curl下载文件的C程序

c - 使用 keyfromString 函数切换字符串的大小写