程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么我不能打印数组中变量的所有字符类型?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决为什么我不能打印数组中变量的所有字符类型??

开发过程中遇到为什么我不能打印数组中变量的所有字符类型?的问题如何解决?下面主要结合日常开发的经验,给出你关于为什么我不能打印数组中变量的所有字符类型?的解决方法建议,希望对你解决为什么我不能打印数组中变量的所有字符类型?有所启发或帮助;
#include <stdio.h>
#include <conio.h>

int main() {
    
    char name[20];
    int age[20],i,size;
    
    printf("Enter number of students: ");
    scanf("%d",&sizE);
    
    for (i = 0; i < size; i++)
    {   
    printf("\nEnter student # %d name: ",i+1 );
    scanf("%s",&name[i]);
    
    printf("\nEnter student # %d age: ",i+1 );
    scanf ("\n%d",&age[i]);
    }
    printf("---");
    printf("\n student information");
    for (i = 0; i < size; i++)
    {
        printf("\nstudent # %d :\n",i+1);
        printf("name: %c",name[i]); //how do i print the array here?
        printf("\nAge: %d",age[i]);
    }
    return 0;
}

出于某种原因,我无法显示输入的整个字符,相反,我的程序没有产生任何结果。这是什么原因造成的,我该如何解决?

解决方法

#include <stdio.h>
#include <conio.h>

int main() {

char name[20][100];
int age[20],i,size;

printf("Enter number of students: ");
scanf("%d",&sizE);

for (i = 0; i < size; i++)
{   
printf("\nEnter student # %d name: ",i+1 );
scanf("%s",&name[i]);

printf("\nEnter student # %d age: ",i+1 );
scanf ("\n%d",&age[i]);
}
printf("---");
printf("\n student Information");
for (i = 0; i < size; i++)
{
    printf("\nstudent # %d :\n",i+1);
    printf("Name: %s",name[i]); //how do i print the array here?
    printf("\nAge: %d",age[i]);
}
return 0;
,

starboy_b 已经回答了您的问题,但我想强调您代码中的安全问题:

请记住,像您一样使用 scanf 来获取输入会给您的程序带来危险的漏洞。

为什么? : scanf 不知道您的变量有多少分配的空间,并且不会阻止用户输入超过缓冲区可以包含的字符数。这会导致缓冲区溢出,并可用于运行攻击者代码。

你过得更好,例如使用 readline 或 fgets 获取用户输入。

大佬总结

以上是大佬教程为你收集整理的为什么我不能打印数组中变量的所有字符类型?全部内容,希望文章能够帮你解决为什么我不能打印数组中变量的所有字符类型?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: