【发布时间】:2022-06-13 21:16:08
【问题描述】:
我正在编写一个简单的程序,它接受用户输入(一个字符)并进行简单的计算。但是,它甚至在到达 scanf 之前就出现了段错误。
我看过的其他帖子(如下)通过向 char 缓冲区添加更多内存或传递变量的地址而不是变量本身等来解决问题,但这并不能解决问题.
为什么会发生这种情况,我该如何解决?
C Programming segfault on scanf
处理字符串而不是字符。发生了什么,我该如何解决?
#include <stdio.h>
int main(int argc, const char * argv[]) {
char piece_type;
printf("Enter piece type (k, b, p):\n");
scanf('%c', &piece_type ); //segfaults here
/*other code */
return 0;
}
【问题讨论】:
-
'%c'是一个(多字符)字符常量。你应该把 string literal"%c"放在那里。投票结束是错字。
标签: c segmentation-fault scanf