主题:for循环中使用gets()出问题了
#include "stdafx.h"
#include <iostream>
#include "string.h"
using namespace std;
struct student
{
int num;
char name[10];
};
int main(int argc, char* argv[])
{
struct student stud[3];
for(int i = 0; i < 3; i++)
{
scanf("%d", &(stud[i].num));
gets(stud[i].name);
}
return 0;
}
我运行这个程序输入时出错,按理说应该要输入3组数据,但是我还没完成输入它就运行结束了。比如输入“ 1 回车 s 回车 2 回车 ”这时它就自己往下运行了,而不是等我再继续进行剩下的输入操作。这是为什么啊???都没想到会遇到这样的问题哦,真是奇怪了。
不过当我注释掉第一个输入语句 scanf("%d", &(stud[i].num));后输入又是正常的,可能是我对gets()这个函数的哪些要点没搞清吧,向大家请教哦
#include <iostream>
#include "string.h"
using namespace std;
struct student
{
int num;
char name[10];
};
int main(int argc, char* argv[])
{
struct student stud[3];
for(int i = 0; i < 3; i++)
{
scanf("%d", &(stud[i].num));
gets(stud[i].name);
}
return 0;
}
我运行这个程序输入时出错,按理说应该要输入3组数据,但是我还没完成输入它就运行结束了。比如输入“ 1 回车 s 回车 2 回车 ”这时它就自己往下运行了,而不是等我再继续进行剩下的输入操作。这是为什么啊???都没想到会遇到这样的问题哦,真是奇怪了。
不过当我注释掉第一个输入语句 scanf("%d", &(stud[i].num));后输入又是正常的,可能是我对gets()这个函数的哪些要点没搞清吧,向大家请教哦