#include<stdio.h>
int main(){
int count[26];
for(int i=0;i<26;i++){
count[i]=0;
}
printf("xx1");
FILE *p;
printf("xx");
p=fopen("test.txt","r");
if(p==NULL)
printf("error");
int x=fgetc(p);
while(x!='\0'){
count[x-97]++;
x=getc(p);
}
for(int i=0;i<26;i++){
printf("%c:%d\t",i+97,count[i]);
}
fclose(p);
return 0;
}
这是我运行getc()时的代码。发生错误...
程序收到信号SIGSEGV,分段错误。 _IO_getc(fp = 0x0)at getc.c:37 37 getc.c:没有那个文件或目录。
答案 0 :(得分:0)
所以总结一下评论:
首先,UPDATE table_name t
SET whole_params = jsonb_set(whole_params, '{exampleParam}','"value2"')
WHERE t.whole_params ->> 'exampleParam' = 'value1';
是字符串的结尾,不是文件的结尾。所以代替:
'\0'
您应该这样做:
while(x!='\0'){
其次,在执行以下操作之前,您应该验证while (x != EOF) {
的索引范围是x-97
:
count
第三,如果count[x-97]++;
,您的功能不应继续。