【发布时间】:2015-04-08 14:48:30
【问题描述】:
fgets() 和 gets() 有什么区别?
当用户点击“输入”时,我试图打破我的循环。它与gets() 配合得很好,但我不想使用gets()。
我尝试使用fgets() 和scanf(),但结果与gets() 不同。 fgets() 无论用户在文本中输入什么,都会打破循环!这是我的代码:
void enter(void)
{
int i,
for(i=top; i<MAX; i++)
{
printf(".> Enter name (ENTER to quit): ");
gets(cat[i].name);
if(!*cat[i].name)
break;
printf(".> Enter Last Name: ");
scanf("%s",cat[i].lastname);
printf(".> Enter Phone Number: ");
scanf("%s",cat[i].phonenum);
printf(".> Enter e-Mail: ");
scanf("%s",cat[i].info.mail);
printf(".> Enter Address: ");
scanf("%s",cat[i].info.address);
printf("\n");
}
top = i;
}
【问题讨论】:
-
你为什么不想使用
gets? -
我在 linux 上工作,它给我一个警告.. 我不知道,它很好用吗?
-
哦,是的,我记得它会造成缓冲区溢出。请你解释一下为什么你不想在你的问题中使用
gets? -
@Milind Bleh,我是 C 的新手。如果现在有人想杀我,我很抱歉。