【发布时间】:2018-12-12 02:08:44
【问题描述】:
我刚开始自学编程,在尝试使用 scanf 从用户输入创建字符数组时遇到了困难;代码如下:
#include <stdio.h>
#define I 5
int main (void) {
char a[I+1] = {a[I+1] = '\0'}, q;
int i;
for(i = 0; i < I; i++) {
printf("Enter an alphabet:\t");
//scanf("%c", &q);
//scanf("%c*\n", &q);
//scanf("%[^\n]", &q);
//scanf("%[a-z, A-Z]", &q);
scanf("%127[^\n]", &q);
a[i] = q;
}
printf("\n");
for(i = 0; i < I; i++) {
printf("Element a[%d] of a[I]:\t%c\n", i, a[i]);
}
printf("And the a[I] string:\t%s\n", a);
return 0;
}
上述代码中的 scanf 组合都不起作用:程序要么在第一个提示之后跳过输入提示,要么不存储响应。
如何用 scanf 解决这个问题?
【问题讨论】:
-
char a[I+1] = {a[I+1] = '\0'}, q;是一个错误,如果您没有看到错误消息,请调整您的编译器设置,因为您错过了重要信息 -
您能否解释一下您如何想象将 127 个输入字符存储在单个字符
q中?
标签: c