繁体   English   中英

C文件中的字符数

[英]C number of characters on file

为什么在写入文件“ test1”的情况下程序返回9? 该程序在文件中查找字符数。 我想运行'while(fgetc(file)!= EOF)'方法,但这似乎不起作用。

我希望对此有所帮助。 谢谢

#include <stdio.h>
#include <stdlib.h>

#define FORMATLOG "FORMAT ERROR: invalid parameter: s5e4 <filename.txt>"
#define TXFILELOG "FILE ERROR: Can't open file or file does not exist"

enum { true, false };


int interface(char *filename) {

    FILE *f_text = fopen(filename, "r+");
    size_t size;
    char c;

    if(f_text == NULL) {
        puts(TXFILELOG);
        return NULL;
    }

    fseek(f_text, 0, SEEK_END);
    size_t length = (size_t) ftell(f_text);

    printf("%d", length);

    fclose(f_text);

    return true;
}


int main(int argc, char **argv) {

    if(argc != 2) {
        puts(FORMATLOG);
        return false;
    }

    return interface(argv[1]);
}

为什么会并发症呢?

参见http://linux.die.net/man/2/stat

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>

int main()
{
    struct stat buf;
    stat("filename", &buf);
    printf("Size:%d\n", buf.st_size);
    return 0;
}

(糟糕错过了错误检查,但我想您知道了)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM