【发布时间】:2015-03-27 18:20:08
【问题描述】:
我有一个非常简单的 C 示例程序,它可以粗略地计算输入中的字符单词和空格。该程序编译没有错误,但在测试时,该程序不会通过 print 函数返回任何 int 变量。我正在使用 VS2012 进行编码和编译。进入代码表明这些值被正确计算。我的代码或编译器有问题吗?
#include <stdio.h>
#define IN 1
#define OUT 0
/* count digits, white space, others */
main()
{
int c, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while ((c = getchar()) != EOF){
++nc;
if(c == '\n'){
++nl;
}
if (c == ' ' || c == '\n' || c == '\t'){
state = OUT;
} else if (state == OUT){
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
}
【问题讨论】:
-
您确定已将输出生成到有效的日志或窗口中并且正在寻找输出的正确位置吗?此外,在极少数 的情况下,不会刷新输出,如果有疑问,您应该明确刷新。您是否从命令行运行此代码?如果是这样,它应该打印。否则,如果是 GUI 或其他东西,则可能有另一种显示结果的机制。
-
你用
EOF打破循环了吗? -
啊,好点 - 换句话说,他能看到任何 printf() 输出。如果我在编写代码,我会在一开始就确定的东西。
-
@rlwheeler 按 Ctrl + F5 运行程序。您还必须在按 Ctrl + z 之前按 Enter
-
对我来说很好。运行它,输入一些东西,按 ctrl-z,查看输出。
标签: c visual-studio-2012 printf