【发布时间】:2013-06-21 05:02:41
【问题描述】:
这是代码的编写方式。
int main()
{
char enteredName[30];
char stringNum[4];
char continueLetter = 0;
int continueProgram = 0;
int enteredAge;
int i;
do
{
memset(enteredName,'\0', 30);
printf("Please enter a name: ");
fgets(enteredName, 29, stdin);
printf("\n\nNow please enter your age: ");
fgets(stringNum, 3, stdin );
for(i = 0; i < 30; i++)
{
if (enteredName[i] == '\n')
{
enteredName[i] = '\0';
break;
}
}
for(i = 0; i < 4; i++)
{
if (stringNum[i] == '\n')
{
stringNum[i] = '\0';
break;
}
}
enteredAge = atol(stringNum);
} while();
当我第二次运行循环时,我无法在 char 数组中输入新名称,它只会进入下一个提示符(年龄)。除非这个问题涉及链表,否则问题似乎出在其他问题上。你能帮我找出错误吗?谢谢!
【问题讨论】:
-
感谢您的帮助,我必须道歉,但这不是整个代码;我认为这是主要问题的一部分。其余代码涉及一个用于“使用 Y/N 继续程序”的 char 变量。它没有像我的'for loops'那样检查'\n',所以我只是用一个简单的fflush修复它。再次感谢您的帮助,祝您有美好的一天!
-
请注意,每次使用后都要检查
fgets()的返回值。
标签: c