我正在尝试编写类似于 Linux 命令 wc 的东西来计算任何类型文件中的单词、新行和字节数,而我只能使用 C 函数读取。我已经编写了这段代码,并且我得到了换行符和字节的正确值,但我没有得到计数字的正确值。
int bytes = 0;
int words = 0;
int newLine = 0;
char buffer[1];
int file = open(myfile,O_RDONLY);
if(file == -1){
printf("can not find :%s\n",myfile);
}
else{
char last = 'c';
while(read(file,buffer,1)==1){
bytes++;
if(buffer[0]==' ' && last!=' ' && last!='\n'){
words++;
}
else if(buffer[0]=='\n'){
newLine++;
if(last!=' ' && last!='\n'){
words++;
}
}
last = buffer[0];
}
printf("%d %d %d %s\n",newLine,words,bytes,myfile);
}