程序未终止或返回时出现scanf函数错误

程序未终止或返回时出现scanf函数错误,c,function,scanf,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); retu

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

#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;
    }

听起来你好像在忍受缓冲的痛苦。加

    fflush(stdout);
在printf行之后

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


要确保此时此地生成输出,请调用fflush。

对于第一个程序,您确实给它一些输入,然后用Enter键终止该输入?您想在这里做什么?整数扫描%d\n,大小(&S);不能复制。这对我来说非常好。因为这对我来说非常好,这可能是终端的问题,也可能不是您试图使用的代码。请仔细检查这是否是您在另一个shell中编译和运行程序的实际代码不起作用;它将等待,直到您键入一个整数或不可能是整数或字母等。如果您想要基于行的输入,请不要使用scanf;改用FGET和sscanf。然而,这是一个关于是什么导致您的程序“未终止”的猜测。