C 基本代码未按预期工作

Posted

技术标签:

【中文标题】C 基本代码未按预期工作【英文标题】:C basic code not working as expected 【发布时间】:2016-07-06 23:27:19 【问题描述】:

我刚刚开始学习 C,但我遇到了一些基本代码的问题。根据我正在阅读的书(C 编程语言),此代码应接受用户输入然后输出。相反,我只是在程序关闭之前获取输入的第一个字母

#include <stdio.h>

main()

    int c;

    c = getchar();
    while (c != EOF) 
        putchar(c);
        c = getchar();
    


【问题讨论】:

你应该使用int main,因为implicit-int 已经过时了。另外,最后返回 0。 尝试重定向输入,以便从文件中读取。当输入回显到与写入输出相同的设备(例如屏幕)时,您不一定会看到您期望的所有内容。 你是如何准确运行这个的?代码看起来是正确的,与下面的共识相反。此行缓冲标准输出,因此在输入 cr/lf 之前您不会看到任何输出,但如果您键入“blah”并按 Enter,之后您应该会看到“blah”。跨度> 我在ideone.com/qh3tak 运行成功。是的,WhozCraig 是对的,它在功能上是相同的代码。实际上,代码非常正确(这是 Kernighan & Ritchie 的一个示例)。所以问题一定出在OP的IDE中。 你使用的是 win 操作系统吗? 【参考方案1】:
#include <stdio.h>

main()

    int c;
    c = getchar();
    while (c != EOF) 
        putchar(c);
        c = getchar();
    

工作正常。

了解getchar 的基本概念:- getchar 是 C 编程语言中的一个函数,它从标准输入流 stdin 中读取单个字符,无论它是什么,并将其返回给程序。

主要问题必须出在 IDE 上。

【讨论】:

以上是关于C 基本代码未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

@Transactional 注释未按预期工作

带有一个 goto 标签的 C 代码未按预期工作

C中的无符号字符未按预期工作

可变宏参数计数未按预期工作

自动填充在 Excel 中未按预期工作

PHP file_exists 方法未按预期工作