#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()
請不要投票,這可能看起來微不足道,但它是我面臨的一個問題,太多的投票將使我無法提出進一步的問題。 你可以發表評論,如果這個問題真的是多餘的,天真或微不足道的,但我不會投票,我會留意刪除這個問題。 謝謝。
我正在回答這個問題,儘管謙遜的請求傢伙已經投了票。 –