结构体中定义的字符数组存好数据后,剩余的尾部不是空的,总是有些无关的数据在后面的空余部分,是怎么回事呢
struct st {
char name[21];
int num;
};
struct st co = {
"cosdos",
21
};
/* C 中的字符串是以空字符结尾的 */
name 的内容 {'c', 'o', 's', 'd', 'o', 's', '\0', ....剩余的数据是未知的.....}
struct st {
char name[21];
int num;
};
input ()
{
int i=0;
char ch;
while(i!=21)
{
scanf("%d,%c\n",&i,&ch);
if(0<i<19)
i=19;
else i++;
struct.name[i]=ch;
}
}
output ()
{输出该字符数组的21个元素}
当对数组多次操作时就有问题,
这段程序问题还真多
[此贴子已经被作者于2007-11-9 0:14:11编辑过]
#include <stdio.h>
struct nes
{
char name[21];
int num;
} st; /* st 全局结构变量 */
void input(struct nes * st); /* 函数原型 */
void show_nes(struct nes * st); /* 函数原型 */
//----------------------------------------------//
// Main //
//--------//
int main(void)
{
printf("input :\n");
input(&st);
printf("Show :\n");
show_nes(&st);
getchar();
return 0;
}
//----------------------------------------------//
// 函数 //
//--------//
void input(struct nes * st)
{
printf("请输入您的 ID 和您的姓名(中间以空格空开):\n");
while(scanf("%d %20s", &st->num, st->name) != 2)
{
while(getchar() != '\n');
printf("请按照要求正确输入!\n");
}
while(getchar() != '\n');
}
void show_nes(struct nes * st)
{
printf("%d %s\n", st->num, st->name);
}
[此贴子已经被作者于2007-11-9 0:20:37编辑过]