程序不会终止或返回scanf函数的错误

时间:2016-07-16 16:11:55

标签: c function scanf

这个程序不会终止,也不会让我输入任何值,只是一个没有输出的黑屏。

#include <stdio.h>
#include <string.h>
#include <stdlib.h> 
int main()
{
    int size;
    printf("Enter number of elements in array:");
    scanf("%d", &size);
    printf("\n%d\n", size);
    return 0;
    }

1 个答案:

答案 0 :(得分:1)

听起来你正在遭受缓冲。添加

    fflush(stdout);

printf行之后。

默认情况下,如果stdout进入终端,则它是行缓冲的,这意味着只有在缓冲区已满或输出换行符(\n)时才会实际输出。终止程序(通过exit()或从main返回)将关闭所有打开的文件句柄并强制刷新。

要确保在那时生成输出,请致电fflush