字符串scanf输入学生信息有误
#include <stdio.h>#include <stdlib.h>
struct stu{
char name,major;
char birth,num;
}Student;//建立学生信息的结构体
int main(){
for(int i=0;i<2;i++)
{scanf("%s%s%s%s",Student.name,Student.birth,Student.num,Student.major);}
//利用scanf输入信息
for(int i=0;i<2;i++)
printf("%s\t%8s\t%8s\t%s\n",Student.name,Student.birth,Student.num,Student.major);
//利用printf输出信息
system("pause");
}
代码如上图所示,遭遇到的问题是:输入与输出结果不匹配,运行结果如下图,主要问题是输入第二行的name值b出现在了第一个学生信息的birth,num字段后,且birth字段页包含了num字段值
字符串越界了,定义的时候,8位字符要定义9位,给'\0'字符留空间,不然输出的时候不知道什么地方停止 你这代码如果都是3个字符肯定不会出错。你或者一次性给大点空间吧 谢谢答主解答,我懂啦,已经调整好了,就是你说的问题~O(∩_∩)O哈哈~
页:
[1]