You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

K&Rcbooksection5.2getintexample

在K&R c书籍的第5章第2节中,有一个示例函数名为getint,它可以从标准输入流中读取下一个整数,并将其存储在*pn指向的位置中。如果输入流中没有下一个整数,则返回EOF。现在我们将对该示例进行中文翻译,代码注释会提供,整个函数代码如下所示:

#include <ctype.h>

/* getint函数:将下一个整数从输入中读取到*pn中 */
int getint(int *pn)
{
    int c, sign;

    while (isspace(c = getchar()))  /* 跳过空白符 */
        ;
    if (!isdigit(c) && c != EOF && c != '+' && c != '-') {
        ungetc(c, stdin);  /* 输入不是数字 */
        return 0;
    }
    sign = (c == '-') ? -1 : 1;
    if (c == '+' || c == '-')
        c = getchar();
    for (*pn = 0; isdigit(c); c = getchar())
        *pn = 10 * *pn + (c - '0');
    *pn *= sign;
    if (c != EOF)
        ungetc(c, stdin);
    return c;
}

这个函数的基本思路如下:

1.跳过空格符,直到读取到一个字符,它要么是数字,要么是正号或负号,或者是EOF。

2.如果读取到了符号,将其保存到变量sign中,并再次从输入流中获取下一个字符。

3.如果第一个非空白字符不是数字或符号,则返回0,表示未能读取到有效字符。

4.如果成功读取了一个数字,则将其添加到* pn指向位置所指的整数中,并再次从输入流中获取下一个字符。

5.如果需要,将读取到的数字乘以-1,以便将其正确地表示为负数。

6.最后,将读取到的字符推回输入流中(保证下一次读取从正确位置开始),并返回读取到的字符。

使用上述方法读取下一个整数,可以让代码更加灵活。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

居家办公更要高效 - 自动化办公完美提升摸鱼时间 | 社区征文

而且还自带了 Jupyter Notebook 代码编辑器,安装了 Anaconda 基本无需再安装其他工具就可以愉快地开发起来不过还是建议安装 pyCharm 代码编辑器进行开发,而且这篇文章代码的编写也是基于 pycharm> 工具>> **Anaconda** [https://anaconda.en.softonic.com/](https://xie.infoq.cn/link?target=https%3A%2F%2Fanaconda.en.softonic.com%2F)\>>> pyCharm [https://www.jetbrains.com/pycharm/download/#section=windows](...

一文读懂域名注册

(https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/beb27377ab9242d1b2a816d8eafbc1e3~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1714062040&x-signature=cq6eqKjvjs0oZIN%2F8d3YW1... =&rk3s=8031ce6d&x-expires=1714062040&x-signature=AwOJdJeb1d36hdyPV6oFUO8t3WI%3D)DNS 服务器创建完毕,需要为 DNS 服务器分配至少一个子域名(如dns.example.com)用来作为 NS 记录值使用。子域名与 IP 的绑...

一文读懂域名注册

.com 为顶级域名,volcengine.com 是二级域名或主域名,www.volcengine.com 是子域名或分域名。值得注意的是,顶级域名可以由多个标签组成,例如 .com.cn。![picture.image](https://p3-volc-community-sign.byteimg... =&rk3s=8031ce6d&x-expires=1714062076&x-signature=zBpNihQ6q8GbzWae1Ik1BJRY%2Fg4%3D)DNS 服务器创建完毕,需要为 DNS 服务器分配至少一个子域名(如 dns.example.com)用来作为 NS 记录值使用。子域名与 IP 的绑...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

K&amp;Rcbooksection5.2getintexample -优选内容

居家办公更要高效 - 自动化办公完美提升摸鱼时间 | 社区征文
而且还自带了 Jupyter Notebook 代码编辑器,安装了 Anaconda 基本无需再安装其他工具就可以愉快地开发起来不过还是建议安装 pyCharm 代码编辑器进行开发,而且这篇文章代码的编写也是基于 pycharm> 工具>> **Anaconda** [https://anaconda.en.softonic.com/](https://xie.infoq.cn/link?target=https%3A%2F%2Fanaconda.en.softonic.com%2F)\>>> pyCharm [https://www.jetbrains.com/pycharm/download/#section=windows](...
高阶使用
python from datetime import datetimefrom airflow.decorators import dagfrom airflow.operators.dummy import DummyOperatorfrom airflow.operators.python import BranchPythonOperator@dag(schedule_interval=None, start_date=datetime(2022, 9, 14), catchup=False, tags=['example'])def demo_dag(): start = DummyOperator(task_id="start") def get_selected_tasks(): return "branch_a" branching =...
SQL Statements
MODIFY COLUMN [IF EXISTS] [tableColumnDfnt] If the modify column is: Order by column: can modify its default_expr, comment, codec. Partition by column: can modify its comment. Normal column: can modify itstype, default_expr, comment, codec. Example sql Step 1: create a table CREATE TABLE db_name.table_name( `order_by_column ` String, `normal_column` Int64 DEFAULT 0)ENGINE = `CnchMergeTre...
使用代理实现工作区公网访问
实现通过公网访问托管 Prometheus 工作区的目的。 前提条件已创建托管 Prometheus 工作区,并开启 BasicAuth 认证,详情请参见 创建工作区。 已创建容器服务集群。详情请参考 创建集群。 已在集群中安装 ingress-ngi... 不同地域工作区的域名不同 ports: - name: vmp port: 80 protocol: TCP targetPort: 80 sessionAffinity: None type: ExternalName在左侧导航栏中,选择 工作负载 > 对象浏览器。 单击 使用 Yaml 创建...

K&amp;Rcbooksection5.2getintexample -相关内容

一文读懂域名注册

(https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/beb27377ab9242d1b2a816d8eafbc1e3~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1714062040&x-signature=cq6eqKjvjs0oZIN%2F8d3YW1... =&rk3s=8031ce6d&x-expires=1714062040&x-signature=AwOJdJeb1d36hdyPV6oFUO8t3WI%3D)DNS 服务器创建完毕,需要为 DNS 服务器分配至少一个子域名(如dns.example.com)用来作为 NS 记录值使用。子域名与 IP 的绑...

使用CLB实现自建DNS负载均衡

ined 在/etc/named.conf 或者/etc/named.rfc1912.zones 中定义正向或者反向区域[root@dns-test ~] vim /etc/named.rfc1912.zoneszone "dns-test.com" IN { type master; file "example.dns-test.zone"; allow-up... global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21076;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: versio...

VPC内自建DNS及使用

ined 在/etc/named.conf 或者/etc/named.rfc1912.zones 中定义正向或者反向区域。[root@dns-test ~] vim /etc/named.rfc1912.zoneszone "dns-test.com" IN { type master; file "example.dns-test.zone"; allow-... global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21076;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: versio...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

一文读懂域名注册

.com 为顶级域名,volcengine.com 是二级域名或主域名,www.volcengine.com 是子域名或分域名。值得注意的是,顶级域名可以由多个标签组成,例如 .com.cn。![picture.image](https://p3-volc-community-sign.byteimg... =&rk3s=8031ce6d&x-expires=1714062076&x-signature=zBpNihQ6q8GbzWae1Ik1BJRY%2Fg4%3D)DNS 服务器创建完毕,需要为 DNS 服务器分配至少一个子域名(如 dns.example.com)用来作为 NS 记录值使用。子域名与 IP 的绑...

开启 DNSSEC

(DNS Security Extension)。作为 DNS 的扩展协议,DNSSEC 为 DNS 数据的来源和完整性提供了鉴权机制,可以验证 DNS 响应是否来自权威 DNS 服务器,从而避免 DNS 缓存投毒(DNS cache poisoning)等攻击。参见 DNSSEC 了... status: NOERROR, id: 59330;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags: do; udp: 512;; QUESTION SECTION:;www.example.com. ...

Nginx Ingress 配置 HTTPS 协议

tworking.k8s.io/v1kind: Ingressmetadata: name: nginx-ingress 路由规则的名称spec: ingressClassName: nginx 指定 Ingress Controller rules: - host: example.com 转发规则域名 http: paths: ... 详情请参见 Nginx Ingress 配置重定向规则。 执行以下命令,创建 Ingress。 bash kubectl apply -f nginx-ingress.yaml结果验证查看配置执行以下命令,查看 ingress 配置。 bash kubectl get ingress预期返回结果如...

如何验证CNAME记录的解析是否正常?

替换成实际的子域名(或主机名)。例如,如果你有一个加速域名 sub.example.com 并且你为它设置了 CNAME 记录,你的命令将会是:nslookup sub.example.com 这个命令将会查询 DNS 系统,以找出 sub.example.com 的CNAME记... global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54321;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:;subdomain.example...

管理 PTR 记录

暂不支持 IPv6 地址的 PTR 记录。 您需要关注公网 IP 的订阅状态。如果公网 IP 到期或被退订,对应的 PTR 记录会失效且状态显示为 异常。 域名 PTR 记录的域名。您可以设置为任意根域名或子域名,例如 example.co... 下面的例子通过 dig 命令查询 1.1.1.1 所对应的 PTR 记录。 shell dig -x 1.1.1.1 可以看到,ANSWER SECTION 返回了对应的 PTR 记录值 one.one.one.one.。 .volc-md-viewer img { border: 1px solid 006EFF;}.volc-...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询