c - 为什么 while 循环后的 printf() 不起作用?
问题描述
我是初学者,最近开始学习 C,这是我不明白的“Brian W. Kernighan, Dennis M. Ritchie 的 C 编程语言”中的一个示例。该程序应该计算输入中的新行并打印出最终结果。这与书中(第 19 页)中的程序完全相同。它的输出什么都没有。我可以永远输入,它只是换行......
main()
{
int c, nl;
nl = 0;
while ((c = getchar()) != EOF)
if (c == '\n')
++nl;
printf("%d\n", nl);
}
如果我将 "printf("%d\n", nl)" 语句放在 if 语句的主体中,则每次都会在新行上打印输出,并且 "nl" 的值也不会重置。每次我输入内容时它都会增加,并且程序不会终止。
为什么示例不起作用?
解决方案
int main()
{
int c, nl;
nl = 0;
while ((c = getchar()) != EOF)
if (c == '\n')
++nl;
printf("%d\n", nl);
return 0;
}
我使用 Code::Blocks 在我的计算机上运行它,它运行得很好。也许你只是忘记了 main 之前的 int 并返回 0 ^^
推荐阅读
- javascript - 当我的应用程序在 iframe 中时,如何在我的域中设置一个 cookie,以便我可以在客户端打开我的应用程序时访问它抛出我的域?
- python - 使用新数据框更新 Python Dash 应用程序
- php - SQL 尝试插入数据库
- sorting - 基于内部列表中的字段对Java中的两个嵌套列表进行排序和分组
- javascript - 在焦点上扩展导航项目
- python - 使用 Python 的机器人框架在电子邮件中定位链接
- swift - 我应该如何绑定到 SwiftUI 视图中的核心数据实体字符串属性?
- typescript - pupetteer - 获取内部文本返回 JSHandle 前缀
- html - 如何在引导网格内按比例调整 div 的大小?
- javascript - 浏览器可以使用 deflate 或 gzip 发送压缩的 XHR 请求(例如,POST)吗?