首先,fgets用于读取整行的字符串,但本人在使用的过程中存在一些疑问
例如本程序:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
scanf("%d",&a);
char d[100];
fgets(d,sizeof(d),stdin);
return 0;
}
经过测试可知,输入完a后程序会直接停止,无法输入字符串s,本人猜想是因为a后的换行符,所以添加一个字符串,先读入换行符
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
scanf("%d",&a);
char s[0];
char d[100];
scanf("%c",&s[0]);
fgets(d,sizeof(d),stdin);
return 0;
}
请问本处理方法是否正确,或者是否有其它处理方法
例如本段程序
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
scanf("%d",&a);
printf("%d",a);
char s[0];
char d[100];
scanf("%c",&s[0]);
fgets(d,sizeof(d),stdin);
printf("%d",a);
return 0;
}
我们可以发现,在执行完fgets这一行后,a的值被修改了,请问这是为什么,如何处理