【发布时间】:2015-05-03 17:05:23
【问题描述】:
我在编程方面还很陌生,但我在处理一段代码时遇到了麻烦。我正在尝试输入一个单词,但是当我运行程序并输入该单词时它停止工作。
这是代码:
int main(void){
char a[]= "";
printf("Enter word:\n");
scanf_s("%s", a);
return 0;
}
我尝试将 a[] 的大小设置为 20,并按照另一个问题的建议使用 %19s,但这也不起作用。
编辑 1. 将char a[]= ""; 更改为char a[20]= {0};,但它不起作用。
编辑 2. 添加 sizeof(a) 并且代码有效。此外,我删除了 {0},但我不知道这是否有所作为。
最终代码:
int main(void){
char a[20];
printf("Enter word:\n");
scanf_s("%19s", a, sizeof(a));
return 0;
}
【问题讨论】:
-
你已经声明了 empty 数组....
char a[50] = {0};也许? -
无论如何,在它目前的结构中,它显然不会工作。显示大小为
20的变体 -
什么是
scanf_s?你的意思是scanf对吗? -
M$ 中有一个
scanf_s变体