无法编译《C 编程语言 2nd》第 29 页的示例代码

2023-12-02

无法编译《C 编程语言》第二版第 29 页上的代码。

我变了 'getline' to 'GetLine' 在代码中使其工作。

我们怎样做才能让程序在不改变的情况下编译呢?

作者是如何编译代码的?

这是代码:

 #include <stdio.h>
 #define MAXLINE 1000    /* maximum input line size */

 int GetLine(char line[], int maxline);
 void copy(char to[], char from[]);

 /* print longest input line */
 main()
 {
     int len;            /* current line length */
     int max;            /* maximum length seen so far */
     char line[MAXLINE];     /* current input line */
     char longest[MAXLINE];  /* longest line saved here */

     max = 0;
     while ((len = GetLine(line, MAXLINE))> 0)
         if (len> max) {
             max = len;
             copy(longest, line);
         }
     if (max> 0)     /* there was a line */
         printf("%s", longest);
     return 0;
 }

 /* GetLine:  read a line into s, return length */
 int GetLine(char s[], int lim)
 {
     int c, i;

     for (i=0; i<lim-1 && (c=getchar()) !=EOF && c!='\n'; ++i)
         s[i] = c;
     if (c == '\n') {
         s[i] = c;
         ++i;
     }
     s[i] = '\0';
     return i;
 }

 /* copy:  copy 'from' into 'to'; assume to is big enough */
 void copy(char to[], char from[])
 {
     int i;

     i = 0;
     while ((to[i] = from[i]) != '\0')
         ++i;
 }

问题是getline全小写已成为实际的POSIX C 函数因此该名称不能在包含以下内容的 POSIX 兼容程序中使用<std*标头。

您决定将其重命名为GetLine由于 C 区分大小写,因此避免了这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法编译《C 编程语言 2nd》第 29 页的示例代码 的相关文章

  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • Google Reader API - 获取提要

    有谁知道用户是否可以调用 Google Reader 服务来获取属于特定标签 类别的所有提要的名称 uri 谢谢 您可以使用以下代码的变体来访问 Google 阅读器系统 您需要在每个请求中发送标头 Authorization auth m
  • 如何检测 mithril.js 中的模型参数更改事件?

    我最近开始学习 mithril js 我想知道如何制作非常基本的模型 gt 查看单向数据绑定应用程序 TestModel function data this name m prop data name testModel new Test
  • PHP计算时间差大于24小时

    当时间大于 24 小时时 计算时间差的最佳方法是什么 Example time1 76 00 00 time2 30 00 00 result should be 46 00 00 echo date H i s strtotime tim
  • 如何锁定文本区域的第一个单词?

    基本上我需要创建一个字符限制的文本区域 但开头有一个单词 它们无法更改 它需要成为文本区域的一部分 但我不希望用户能够删除它或编辑它 我想我可以使用创建一个 JQuery 函数blur 以防止用户退格 但我还需要防止他们选择该单词并将其删除
  • 每分钟呼叫功能

    我编写的每分钟调用一个函数的代码我认为是有缺陷的 因为它在一段时间内很好 但自页面加载以来每小时往往会落后约 15 秒 老实说 我无法弄清楚是什么导致了滞后 也许是函数执行所需的时间 小失误全部加起来并累积起来 有没有一种方法可以在调用函数
  • 如何向未存储在数据库中的 Web API 响应添加属性?

    我正在使用 Entity Framework 6 0 构建 C Web API 我有一个最简单的用户类 它有 3 个属性 我将它们通过 SQL 持久保存到具有 3 个相应列的用户表中 其中 UserID 是其主键 public partia
  • 我可以暂时为线程启用 FTZ 和 DAZ 浮点模式吗?

    我想暂时启用FTZ DAZ模式来获得某些代码的性能增益 其中严格遵守IEEE 754标准不是问题 无需更改其他线程的行为 这些线程可能正在执行代码 其中合规性很重要 我一直在读this关于如何启用 禁用这些模式以及this关于非规范处理的性
  • 引用 AssemblyInfo.cs 中的项目时,发布预编译的 ASP.NET 失败

    当我们尝试发布我们的 ASP NET 应用程序时发布期间预编译启用后 它将失败 因为我们引用了AssemblyInfo cs file 这是我们的项目结构 Project WebUI ASP NET MVC App on NET 4 6 2
  • 每次提交表单时使用触发器对工作表进行排序

    我正在尝试让 Google 表格在提交表单时自动排序 我已经能够设置脚本以使用以下内容进行排序 但它仅在手动编辑电子表格时才有效 而不是在从表单输入新数据时 function onEdit event var sheet event sou
  • 编写 XML 元素时设置属性的顺序 [重复]

    这个问题在这里已经有答案了 用java编写时如下 Element fieldEl targetDocument createElement field fieldEl setAttribute Wine Marlo fieldEl setA
  • 桌面 TCP 流式传输 (java)

    我想串流桌面屏幕截图使用套接字 我不知道具体的方法 所以我使用了 AWT 的机器人 Robot robot new Robot BufferedImage image robot createScreenCapture screenRect
  • 使用 PYODBC 将 pandas 中的数据获取到 SQL Server

    我试图了解 python 如何将数据从 FTP 服务器提取到 pandas 中 然后将其移动到 SQL 服务器中 至少可以说 我这里的代码非常初级 我正在寻求任何建议或帮助 我尝试先从 FTP 服务器加载数据 效果很好 如果我然后删除此代码
  • apk 必须使用与之前版本相同的证书进行签名

    我不久前已将我的应用程序上传到 Google Play 当时称为 Android Market 今天我更新了应用程序 但我删除了以前的密钥库并创建了一个新的 上传时 它说 APK 必须使用与以前版本相同的证书进行签名 上传失败 您上传的 A
  • 将文件的全部内容读取到 c char *,包括新行

    我正在寻找一种跨平台 Windows Linux 解决方案来将整个文件的内容读取到char 这就是我现在所拥有的 FILE stream char contents fileSize 0 Open the stream stream fop
  • 如何在 Fluent NHibernate 中映射受保护的集合?

    我尝试过在 Fluent 中使用 Reveal 属性 但无法将其与集合一起编译 我希望实体中的我的集合之一受到保护 并且除了实体本身之外 无法在任何地方访问 这可能吗 谢谢 Edit 这是我尝试使用的代码 HasMany
  • 增加Tomcat内存设置[重复]

    这个问题在这里已经有答案了 可能的重复 处理 java lang OutOfMemoryError PermGen space 错误 我的开发机器中有 8GB RAM 并且正在尝试运行 Apache Tomcat 7 0 29 来托管这两个
  • 签入 ClearCase 失败

    我正在尝试将文件添加到 ClearCase 中 但收到以下错误 将 C PATH file dbc 添加到源代码管理时出错 更改了 C PATH file dbc 的保护 创建分支 C PATH file dbc 版本 main 0 类型管
  • 通过 API 获取 YouTube 用户的完整播放列表列表

    因此 这是我获取 YouTube 用户的公共播放列表的代码 function getyoutubeplaylists userName yt connectyoutube yt gt setMajorProtocolVersion 2 pl
  • Apple Wallet 无法自动更新通行证

    最后我能够推送新的更改的编译包 为了看到新的变化 我面临一个问题 我必须进入我的钱包卡并禁用 自动更新 然后启用 然后我就可以看到我新编译的通行证 result pdo gt query query if result gt rowCoun
  • 无法编译《C 编程语言 2nd》第 29 页的示例代码

    无法编译 C 编程语言 第二版第 29 页上的代码 我变了 getline to GetLine 在代码中使其工作 我们怎样做才能让程序在不改变的情况下编译呢 作者是如何编译代码的 这是代码 include