c - 嵌套循环:inner loop is skipped once when executed

标签 c

    int t,r,c;
    int matrix[100][100][100];
    int i,j,k=0,l=0;
    int te,ck=0;
    scanf("%d",&t);
    for(te=0;te<t;te++)
    {
            printf("RC");
            scanf("%d %d",&r, &c);
            for(i=0;i<r;i++)
            {
                    for(j=0;j<c;j++)
                    {
                            printf("te= %d i= %d j= %d",te,i,j);
                            fflush(stdin);
                            matrix[te][i][j] = getchar();
                    }
            }
    }

示例o/p>

abhi@ubuntu:~/Desktop$ ./spoon.o 
3
RC3
6
te= 0 i= 0 j= 0te= 0 i= 0 j= 1

控件直接询问 j=1 的值,而 j=0 被跳过。为什么?

最佳答案

fflush(stdin) 不是清除输入缓冲区的方法。 使用:

void flushInputBuffer( void )
{
    int c;
    while( (c = fgetc( stdin )) != EOF && c != '\n' );
}

关于c - 嵌套循环:inner loop is skipped once when executed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9607760/

相关文章:

c - 关键部分中的函数在 OpenMP 中产生数据竞争

c - fpos_t 类型变量的格式说明符?

c - 是否可以读取为 TCP 写入套接字缓冲的字节数?

c - 如何优化 malloc() 或动态填充未知大小的内存?

c - 结构体成员的指针

C 问题:另一个 while 循环内的 while(fgets) 循环仅执行一次

c++ - 如何制作可移植 isnan/isinf 函数

c - 如何实现服务器名称指示(SNI)

从指针转换为不同大小的整数 [-Wpointer-to-int-cast]

c - 在 ubuntu 12.04 LTS 上安装 qt4-make