c - 如何使用C检查文件是否有内容?

标签 c file file-io lcc-win32

我有一个源文件 file1和目标文件 file2 , 这里我必须从 file1 移动内容至 file2 .

所以我必须先做一些验证。

  • 我必须检查源文件是否存在?
    我可以使用这个检查:
    fp = fopen( argv[1],"r" );
    if ( fp == NULL )
    {
        printf( "Could not open source file\n" );
        exit(1);
    } 
    
  • 然后我必须检查源文件是否有任何内容?如果它是空的,我必须抛出一些错误消息。

  • 这是我到目前为止所尝试的。

    最佳答案

    C版:

    if (NULL != fp) {
        fseek (fp, 0, SEEK_END);
        size = ftell(fp);
    
        if (0 == size) {
            printf("file is empty\n");
        }
    }
    

    C++ 版本(从 here 窃取):
    bool is_empty(std::ifstream& pFile)
    {
        return pFile.peek() == std::ifstream::traits_type::eof();
    }
    

    关于c - 如何使用C检查文件是否有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13566082/

    相关文章:

    Android模拟器无法在eclipse上启动

    c - 适用于 Windows 7 64 位的 c 和 c++ 的 mingw 和代码块?

    c - 如何创建一个函数来解密加密文件?

    java - 如何加载和解析 SVG 文档

    sql - 如何停止 Sql Server 的用户实例? (Sql Express 用户实例数据库文件被锁定,即使在停止 Sql Express 服务后)

    matlab - 是否可以加载已保存在 .mat 文件中的矩阵的单列?

    c - 字符串存储到共享内存后无法正常显示

    c - 函数 'sum' 的隐式声明在 C99 中无效

    c - 正在清除文本文件

    java - 给定路径中的文件无法识别