#include <iostream>
#include<cstdio>
#include<string>
#include<cstdlib>
using namespace std;
struct addr
char name[30];
char street[30];
long int ph_num;
};
int main()
{
addr person[2];
int a;
for(int n=0;n<2;n++)
{
puts("Enter name of person");
fgets(person[n].name,30,stdin);
a=(strlen(person[n].name)-1);
if(person[n].name[a]=='\n')
{
person[n].name[a]='\0';
}
puts(person[n].name);
puts("Enter street of person");
fgets(person[n].street,30,stdin);
a=(strlen(person[n].street)-1);
if(person[n].street[a]=='\n')
{
person[n].street[a]='\0';
}
puts(person[n].street);
puts("Enter ph of person");
scanf("%ld",&person[n].ph_num);
printf("%ld",person[n].ph_num);
}
return 0;
}
这段代码工作正常只有第一次,但之后的第一个,在第二次迭代我不能写的人名(跳过直接到person [n] .name)。我不能不知道可能是什么问题,尽管我猜它可能与fgets函数的工作方式有关。如何读取多个使用字符串与fgets()
请不要投票,这可能看起来微不足道,但它是我面临的一个问题,太多的投票将使我无法提出进一步的问题。 你可以发表评论,如果这个问题真的是多余的,天真或微不足道的,但我不会投票,我会留意删除这个问题。 谢谢。
我正在回答这个问题,尽管谦逊的请求家伙已经投了票。 –