我编程在C和我开始做这样的文件单词计数一些基本的编程,但不幸的是我得到了我的程序的执行漏洞。 gcc编译显示这样的警告:需要帮助了解缺陷在我的计划
test.c: In function ‘main’:
test.c:11: warning: passing argument 1 of ‘fopen’ makes pointer from integer without a cast
/usr/include/stdio.h:269: note: expected ‘const char * __restrict__’ but argument is of type ‘char’
线11是与if语句
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#define FAIL -1
#define SUCCESS 1
int main (char *filename) {
FILE *fp;
char c;
int wordcount = 0;
if ((fp = fopen(*filename,"r")) == NULL)
return FAIL;
while (!feof(fp))
{
while(!isalpha(fgetc(fp)))
{
wordcount++;
}
}
printf("wordcount: %d",wordcount);
fclose(fp);
return SUCCESS;
}
'INT主(INT ARGC,字符** argv的);' – 2013-02-20 14:03:02
此外,您使用的是'feof'不正确。 http://stackoverflow.com/questions/5431941/while-feof-file-is-always-wrong – 2013-02-20 14:06:04
此外,主要应在成功返回零(或EXIST_SUCCESS)。 (并且EXIT_FAILURE ON失败) – wildplasser 2013-02-20 14:08:10