此程序在c程序中没有扫描第一次循环迭代的字符串
此程序在第一次循环迭代中没有扫描字符串。基本上,“for”的第一次迭代不起作用……为什么此程序在c程序中没有扫描第一次循环迭代的字符串,c,scanf,C,Scanf,此程序在第一次循环迭代中没有扫描字符串。基本上,“for”的第一次迭代不起作用……为什么 void main() { int T; printf("Enter T:"); scanf("%d",&T); char a[T][100]; int i; for(i=0;i<T;i++) { fgets(a[i],s
void main()
{
int T;
printf("Enter T:");
scanf("%d",&T);
char a[T][100];
int i;
for(i=0;i<T;i++)
{
fgets(a[i],sizeof(a[i]),stdin);
printf("\n%s",a[i]);
printf("hii");
}
}
void main()
{
int T;
printf(“输入T:”);
scanf(“%d”、&T);
字符a[T][100];
int i;
对于(i=0;iscanf
不使用换行符。因此,在第一次迭代中,fgets
看到的第一个字符是换行符,并立即退出。您还可能注意到所有元素都被一个一个地关闭(即,您输入的第一个字符串在a[0]
中,第三个在a[1]
中,等等)
您需要在scanf
之后插入一个对getchar
的调用,以摆脱换行符。确保您理解scanf
和fgets
所做的事情。在深入研究类似的复杂问题之前,先编写一个简单的程序,让自己相信您的理解。scanf()
通常不适合获取原始用户输入。请在代码中放入一些printf
s,然后找出发生了什么情况…或者更好的方法是使用调试器!仍然存在一些问题…!输入的第一个字符在某个地方被使用