gpt4 book ai didi

c - 在unix中执行wc命令的程序。字数错误

转载 作者:行者123 更新时间:2023-11-30 19:16:30 24 4
gpt4 key购买 nike

我在字数统计的输出方面遇到问题。有时它将空格算作一个单词。

n = read(inFile,buffer,512);
int i;
for(i = 0 ; i < n; i++){
if(buffer[i] == '\n') {
l++;
if(buffer[i-1] != '\n' || buffer[i-1] == EOF ){
if(buffer[i-1] != ' '){
w++;
}
}//end if
}//end if
if(buffer[i] == ' ' || buffer[i] == '\t'){
w++;//get the word
}//end if

b++;//get the byte
}//end for

printf(" %d %d %d %s \n" ,l,w,b,argv[1]);

}

谢谢

最佳答案

您对使用 read 返回的缓冲区检测 EOF 的理解是错误的。缓冲区中没有 EOF 字符。必须通过查看 read 的返回值来检测 EOF。

来自man 2阅读

RETURN VALUES

 If successful, the number of bytes actually read is returned.  Upon
reading end-of-file, zero is returned. Otherwise, a -1 is returned and
the global variable errno is set to indicate the error.

关于c - 在unix中执行wc命令的程序。字数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30059291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com