当前位置:  开发笔记 > 编程语言 > 正文

如何使用getchar运行程序?

如何解决《如何使用getchar运行程序?》经验,为你挑选了1个好方法。

我是一名C n00b,试图在K&R上自学C语言.我的问题有点令人尴尬的基本问题.好的,这里说:我无法使用getchar获取程序,以提供我期望的那种输出.如果你碰巧有K&R,我会坚持练习1.13.问题是,"编写一个程序来打印输入中单词长度的直方图."我甚至无法处理水平版本,因为我遇到了这个问题.

我在XP上使用Dev-C++(mingW编译器)并在命令行下运行程序.我的问题是,当我尝试运行我的程序,它等待我进入字符从扫描,但是当我做输入并按下回车键,它不会做任何事情.我希望它继续按照我的预期打印直方图.实际上,它似乎甚至没有计算字长,因为你可以在代码中看到,当我尝试打印ctr数组中的内容只是为了看它是否包含任何东西时,什么都没有打印出来.

我是如此n00b,我不知道这是我的代码或命令行是否有问题.但我怀疑它与系统有关,因为当我尝试编译并运行模型程序时,同样的事情发生了.输入输入,按Enter键,没有任何反应.如果我是Ctrl-C,有时会吐出一个星号或两个看起来与模型输出完全不同的星号.其他时候,它没有做任何事情(只是回到提示).

这是我练习的代码.我花了一整天的时间来质疑我继续编程的能力.如果有人能让我走出这个洞,我真的非常感激!

另外,我还有一个关于我上面提到的模型程序的问题,但我想我应该在自己的问题中发布它.谢谢大家:)

#include 

//#define 1 IN
//#define 0 OUT
int main () {
    //start w/ state = OUT
    int c = 0;
//    int state = OUT;
    int len = 0;
    int ctr[12];
    int i, j;
    i = j = 0;

    for (i = 0; i <12; i++)
        ctr[i] = 0;
    while ((c = getchar()) != EOF)
       if (c != ' ' && c != '\t' && c != '\n') {
//            state = IN;
            len++;
            printf("%d", len);
            }
       else {
            ctr[len]++;
            len = 0;
            }            
    for (i = 0; i <12; i++) 
        printf("%d\n", ctr[i]);
    for (i = 0; i <12; i++) {
        printf("%d\n", i);   
        for (j = 0; j <= ctr[i]; j++)
            printf("-");
        printf("\n");
        }
    return 0;
}

R Samuel Kla.. 7

你的while循环正在寻找EOF,它代表文件结尾,而不是行尾.

在Windows上,您需要键入ctrl-z来模拟文件结束.



1> R Samuel Kla..:

你的while循环正在寻找EOF,它代表文件结尾,而不是行尾.

在Windows上,您需要键入ctrl-z来模拟文件结束.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有