我是 C for Linux 的初学者,我需要帮助,因为我的程序不工作而且我没有看到问题。
这是我的程序,该程序计算标准输入中的单词、行和字母。但是当有' '
,'\t'
或'\n'
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
void panic (char *str){
char s [100];
sprintf (s, "%s (%d %s)\n", str, errno, strerror (errno));
write (222, s, strlen (s));
exit (1);
}
int main (int argc, char *argv[]){
char c;
unsigned lines =1;
int n;
int letters =0;
int words =0;
int countLin=0;
int countLet=0;
char resultLine=[100];
while ((n = read (0, &c, 1))> 0){
if(c!=' '&&c!='\t'&&c!='\n'){
letters++;
if(countLet!=0){
words++;
countLet=0;
}
if(countLin!=0){
lines++;
words++;
countLin=0;
}
}
if(c==' '||c=='\t')
countLet++;
if(c=='\n')
countLin++;
}
if (n<0)
panic ("Read");
sprintf (resultLine, "%d %d %d \n", lines, words, letters);
if(write(1,resultLine, strlen(resultLine))<0)
panic("Write");
return (0);
}
非常感谢