【发布时间】:2021-04-20 04:29:57
【问题描述】:
我希望代码显示来自用户输入的字符串,但代码显示为空白。有时,它还会显示空值和整数,而不是字符串。
这里是sn-p的代码:
typedef struct list{
char DATA[30];
int last;
} LIST;
LIST L;
int main(){
char x
printf("Enter name:");scanf(" %s",&x);insert(x);
display();getch();
}
void insert (char x){
L.last++;
L.DATA[L.last] = x;
}
void display(){
system("cls");
printf("The list contains:\n");
for (int i=0;i<=L.last;i++){
printf("%d. %s\n",i+1,L.DATA[i]);
}
}
请帮助我理解我做错了什么。任何帮助将不胜感激。
【问题讨论】:
-
scanf("%s",&x)hmm...%s用于扫描字符串,但x是蚂蚁整数。使用%d扫描整数。 -
确保使用 %s 来显示字符串而不是 %d 编辑:sniped
-
printf("%d.) %d\n",i+1,L[MAX].DATA[i]);再次:%d用于整数,%s用于字符串。你可能想要printf("%d.) %s\n",i+1,L[i+1].DATA);(或者只是i而不是i+1) -
另请注意:
L[MAX]超出范围访问,即在数组之外。 -
您的问题没有正确的minimal reproducible example。它不包含任何必需的东西:输入;预期或实际产出;或解释问题中的整个代码片段应该做什么。