无限 while 循环和 control-c

2024-03-18

所以,我写了下面的代码:

void main(void) {

int charNums[ALPHABET], i = 1;
char word[MAX];

while(i) {

    initialize(charNums, word);

    getString(word);
    setLetters(charNums, word);

    getString(word);
    checkLetters(charNums, word);

    if(isZero(charNums))
        printf("Anagram\n");
    else
        printf("Not anagram\n");
}
}

while 循环是无限的,它应该是无限的。我的教授说了一些关于使用 CTRL-C 退出无限 while 循环的内容,但这不适用于我编写的代码。我错过了一些简单的事情还是什么?有人可以指出我正确的方向吗?谢谢你! (注:这只是代码的一部分。)


这应该适合你:

(这里我添加了一个信号处理程序,它检查您是否按 ctrl + c,如果是,则停止循环)

#include <unistd.h>
#include <stdio.h>
#include <signal.h>

volatile sig_atomic_t stop;

void inthand(int signum) {
    stop = 1;
}

int main(int argc, char **argv) {

    signal(SIGINT, inthand);

    while (!stop)
        printf("loop\n");

    printf("exiting safely\n");
    system("pause");

    return 0;
}

所以我认为你的程序应该是这样的:

#include <unistd.h>
#include <stdio.h>
#include <signal.h>

volatile sig_atomic_t stop;

void inthand(int signum) {
    stop = 1;
}

int main(int argc, char **argv) {

    signal(SIGINT, inthand);

    int charNums[ALPHABET], i = 1;
    char word[MAX];

    while(!stop) {

        initialize(charNums, word);

        getString(word);
        setLetters(charNums, word);

        getString(word);
        checkLetters(charNums, word);

        if(isZero(charNums))
            printf("Anagram\n");
        else
            printf("Not anagram\n");
    }

    printf("exiting safely\n");
    system("pause");
    return 0;

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

无限 while 循环和 control-c 的相关文章

随机推荐

  • 如何在android中压缩视频文件

    我想在上传到服务器之前压缩视频文件 我浏览了此链接如何将视频压缩到最大级别android https stackoverflow com questions 21002163 how to compress a video to maxim
  • Racket 中的 POST/GET 绑定

    Racket 中是否有内置的方法来获取 POST GET 参数 extract binding和朋友做我想做的事 但附加了一个关于与文件上传相关的潜在安全风险的可怕注释 其结论是 因此 我们建议反对他们 使用 但它们是为 与旧代码的兼容性
  • 用户注销:清除默认 Google 帐户不会导致帐户选择器显示在 Android 应用程序中

    我按照下面的链接在我的 Android 应用程序中实现了 退出 按钮 该应用程序使用 Google API 客户端 但是 再次连接 google api 后 用户不会看到帐户选择器 看起来她 他最初选择的价值也许仍然以某种方式被缓存 几个小
  • Highcharts - 具有负值的面积样条线,面积应始终位于底部

    我想用 Highcharts 创建一个带有负值的图表 如下所示 http jsfiddle net vargapeti LjL03o8h 3 http jsfiddle net vargapeti LjL03o8h 3 function c
  • JS 关联数组:添加新对

    我在 JS 中有一个关联数组 var array one first two second three third 我怎样才能在其中添加新的对 array newpair new value or array newpair newvalu
  • 使用 Identity 2.0 数据库进行 Moq 模拟

    我在基于简单成员资格数据库的 MVC 5 Entity Framework 6 应用程序中使用 Moq 模拟针对 BusAct 控制器成功设置了集成测试 但现在我已经将数据库迁移到Identity 2 0 并将UserProfile替换为A
  • 尝试使用 Jersey 将 JSON 转换为 POJO 时出错

    我正在这样做 WebResource resource client resource urlStr resource accept MediaType APPLICATION JSON TYPE MediaType APPLICATION
  • ggplot 和plot 如何以不同的方式处理 inf 值?

    我很难理解为什么ggplot and plot相同数据生成略有不同的图 ggplot包括顶部的 inf 值 而plot isn t with geneFDR plot log2 FC log10 FDR pch 20 main FDR vs
  • 需要使用 ASP.NET MVC 2 框架实体的帮助

    我正在使用 C 在 ASP NET MVC 2 中制作一个网站 我设计了一个数据库 其中包含一堆具有多对多关系的表 类似于以下内容 祖父母 多对多 父母 and 父级 多对多 子级 我使用实体框架来创建所有实体类 现在正在处理存储库类中的一
  • 检查 Powershell 中的范围

    我正在尝试编写一个脚本来获取计算机的 IP 地址并检查它是否属于特定的 IP 范围 例如 如果机器的 IP 是 192 168 0 5 脚本将检查它是否在 192 168 0 10 到 192 168 0 20 范围内 到目前为止 我的脚本
  • App Store开发者重命名

    我有一个个人开发者帐户 而不是公司 我发布的每个应用程序附近都写有我的名字 现在我想把它改成一个漂亮的名字 而不改变我的开发者帐户 也不注册公司 任何帮助将不胜感激 我更改了已批准的答案 因为我们被迫启动所有法律程序来获取我们公司名称的合法
  • ant:警告:无法映射用于编码 UTF8 的字符

    我见过很多像我这样的问题 但他们没有回答我的问题 因为我使用的是 ant 而不是使用 eclipse 我运行这段代码 ant clean dist它多次告诉我warning unmappable character for encoding
  • 什么是 com.android.externalstorage?

    尽管这是一个简单的问题 但我找不到答案 or 堆栈溢出 https i stack imgur com 58Zv7 png 当我使用以下代码时 我得到这个结果 com android externalstorage documents tr
  • SSIS 将一张表中的所有数据导出到多个文件中

    我有一个名为 customers 的表 其中包含大约 1 000 000 条记录 我需要将所有记录传输到 8 个不同的平面文件 这会增加文件名中的数字 例如cust01 cust02 cust03 cust04 etc 有人告诉我这可以使用
  • 如何在 Android SDK 的 eclipse 中关闭 @string 资源的警告

    我知道 从技术上讲 对字符串进行硬编码并不是最佳实践 但我可以稍后处理它 现在我只想完成我的项目的外壳 并且我对代码中的警告非常强迫 有什么方法可以关闭它吗 如果我的标题不够具体 请以此为例
  • 何时在 Ninject 中停用瞬态范围对象?

    当 Ninject 中的对象与InTransientScope 该对象不会放入缓存中 因为它是 呃 瞬态的并且没有任何范围 完成该对象后 我可以调用kernel Release obj 这会传递到缓存 在缓存中检索缓存的项目并调用Pipel
  • 如何使用 SQL::Abstract 生成 SQL 查询?

    我如何生成WHERE此查询的子句使用SQL 摘要 http search cpan org perldoc SQL 3a 3aAbstract 从表中选择 COUNT 其中 id 第111章 111 1 2 3 4 AND 状态 待处理 包
  • 获取存储在sd卡+ android中的图像的缩略图Uri/路径

    SDK版本 1 6 我正在使用以下意图打开 Android 的默认图库 Intent intent new Intent intent setType image intent setAction Intent ACTION GET CON
  • 如何使用SimpleStorage插入xml prolog来生成gpx文件?

    我计划一劳永逸地采用一个方便的工具来处理 gpx 文件的创建 我相信简单存储 http www cromis net blog downloads simplestorage 这是一个OmniXML http www omnixml com
  • 无限 while 循环和 control-c

    所以 我写了下面的代码 void main void int charNums ALPHABET i 1 char word MAX while i initialize charNums word getString word setLe