我试图逐个字符读取文件,但调试器在到达fscanf时返回一个分段错误,这是我的代码:
int main(){
FILE *inFile;
char *carattere = NULL;
inFile = fopen("../file.txt", "r");
if (inFile == NULL){
return -1;
}
while(fscanf(inFile, "%c", carattere) != EOF){ //segmentation fault
printf("%c ", *carattere);
}
fclose(inFile);
return 0;}
(我最近重新安装了IDE(。
您应该为要读取的字符提供一些空间。当您尝试写入carattere
时,它指向哪里?
carattere
是NULL
,它甚至不能存储单个字符。因此,您需要给它一些内存,至少2个字节,字符本身的1st字节和' '
的2nd比特。
因此,初始化carattere
如下:
char carattere[2] = { 0 };