小编ami*_*eek的帖子

打印EOF值的预期程序

在代码中:

#include<stdio.h>

int main()
{
    int t;
    for(;scanf("%d",&t);printf("%d",t));

}
Run Code Online (Sandbox Code Playgroud)

当我将普通的整数作为输入时,程序按预期运行.我在Windows上工作,所以当我将Cntrl + Z扫描到参数t时,我没有得到EOF的值,即标准输出上的-1,而是前面存储的参数.此外,当我按Cntrl + D程序终止时,为什么Cntrl + D导致scanf返回0?

为什么在scanf Cntrl + C上我的编译器说:"进程以状态-107终止......"我不明白为什么会发生这种情况?请帮忙.

c for-loop scanf eof

4
推荐指数
1
解决办法
1914
查看次数

在声明和定义之前,可以调用具有int或void返回类型的函数吗?

我在"Kernighan和Ritchie的C编程语言ANSI版"中读到,如果我在实际声明/定义它之前调用另一个函数中返回类型为int或void的函数,它应该可以正常工作.但是当我在代码块上运行它时,我仍然会收到警告.

#include<stdio.h>
#include<conio.h>
int main()
{
    display();
}
void display()
{
    printf("Hello World\n");
}
Run Code Online (Sandbox Code Playgroud)

警告是:"显示冲突的类型".

但是,如果我将程序更改为:

#include<stdio.h>
#include<conio.h>
void display()
{
    printf("Hello World\n");
}
int main()
{
    display();
}
Run Code Online (Sandbox Code Playgroud)

它的工作没有任何警告.这是为什么?请帮忙.

c ansi

2
推荐指数
1
解决办法
331
查看次数

为什么这段代码不起作用?

我不明白为什么这不起作用.谢谢!

#include<stdio.h>
#include<conio.h>
int main()
{
    extern int i;
    int i=20;
    printf("%d",i);
}
Run Code Online (Sandbox Code Playgroud)

编译导致以下错误:

main.c: In function 'main':  
main.c:6:9: error: declaration of 'i' with no linkage follows extern declaration  
main.c:5:16: note: previous declaration of 'i' was here
Run Code Online (Sandbox Code Playgroud)

注意:CompileOnline在线编译代码

c

1
推荐指数
1
解决办法
198
查看次数

标签 统计

c ×3

ansi ×1

eof ×1

for-loop ×1

scanf ×1