當文件寫入「test1」時,爲什麼我的程序返回了9? 程序查找文件中的字符數。我想跑掉'while(fgetc(file)!= EOF)'方法,但這似乎不起作用。C文件上的字符數
我希望對此有所幫助。謝謝
#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]);
}
的9包括其他字符,如換行和回車。 ls -l表示文件的大小是多少? – DanielGibbs
在十六進制編輯器中打開文件,檢查換行符等 –
一般來說,這一行:enum {true,false};因爲通常false爲0,所以行應該是enum {false,true};函數'interface'中的 – user3629249