c - 当我按回车键时退出循环(C 编程)

标签 c

我的程序有点问题,我正在尝试编码。基本上我想在我的循环中一个一个地输入一个符号,当我完成后我只想按回车键退出循环然后将字符串打印到控制台。但是,这似乎不起作用,我已经尝试了几个小时而没有掌握它。这是我的代码

#include <stdio.h>

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


    int i = 0;
    char text[i];
    char symbol;

    while(1){
       scanf("%s", &symbol);
       if(symbol == 13){ //13 should be the ascii value for enter
                 break;          
       }
       text[i] = symbol;
       i++;

    }
    printf("%s", text);

    getch();
    return 0;
}

最佳答案

  • %s 读一个词。如果要使用 scanf 读取字符,请使用 %c
  • C 字符串以 NUL 结尾,您首先必须在打印之前终止字符串。
  • char text[i] - i 此时为零。您将无法在此处存储您的字符串。要么在编译时知道最大大小(并在运行时追加时检查),要么根据需要动态分配内存。

注意:从流中裸扫只是自找麻烦。更喜欢阅读台词。

关于c - 当我按回车键时退出循环(C 编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33284813/

相关文章:

c - &variable 作为表达式在 c 中意味着什么

c - C中的最大数字数据类型

c - libavformat/ffmpeg C 程序 "not suitable input format"

c - 在其他电脑上运行用 Visual Studio 2013 编写的 C 程序

在C中创建linux ubuntu下文件和文件夹的路径

c - 添加作为参数给出的分数 C

c - 管道设置终端到 gnuplot 管道在屏幕上产生垃圾

Android 链接 .so 用于命令行可执行文件?

c - 为什么 C 程序使用 Scanf 给出奇怪的输出?

转换两个指针(float* 到 int*)