我是C新手,試圖編寫一個計算括號,大括號,空格和換行符的程序。編譯器發佈錯誤:錯誤打開fileSegmentation錯誤(核心轉儲)在c程序中對字符進行計數的分段錯誤
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp;
char c;
int blank, tab, openbrace, closedbrace,openbracket,closedbracket, newline=0;
if ((fp = fopen("argv[0]", "r")) == NULL)
{
fprintf(stderr, "Error opening file");
}
while ((c=fgetc(fp)) != EOF)
{
switch(c)
{
case '{':
openbrace++;
case '}':
closedbrace++;
case '[':
openbracket++;
case ']':
closedbracket++;
case '\n':
newline++;
}
}
fclose(fp);
printf("\nThe number of { are %d", openbrace);
printf("\nThe number of } are %d", closedbrace);
printf("\nThe number of [ are %d", openbracket);
printf("\nThe number of ] are %d", closedbracket);
printf("\nThe number of new lines are %d", newline);
}
'如果((FP =的fopen(argv的[1], 「R」))== NULL){PERROR(argv的[1])...'不包含路徑名和錯誤原因的錯誤消息無用且令人沮喪。 –
你也希望在這些案例陳述之後有中斷陳述。 –
將所有計數器變量初始化爲零。 –