【问题标题】:User inputs a sentence (string). How to finish the input with Enter in C?用户输入一个句子(字符串)。如何在 C 中使用 Enter 完成输入?
【发布时间】:2022-01-14 01:22:45
【问题描述】:

我尝试了不同类型的字符串输入(scanf、getchar、gets),但没有一个可以用 Enter 完成输入。大家有什么想法吗?

【问题讨论】:

  • [Enter] 是键盘上的一个键,而不是一个字符。如果您指的是基于行的输入的换行符,您可以使用fgets。永远不要使用gets。从不。

标签: arrays c string input


【解决方案1】:

正如 Cheatah 所说,您要查找的函数是 fgets()。始终尽量避免使用gets(),因为它不提供针对缓冲区溢出漏洞的保护,并且可能会导致您的程序出现大问题。您可以阅读此问题的一些答案,以阐明每个功能的实用性 Scanf() vs gets() vs fgets()

【讨论】:

    【解决方案2】:
    #include <stdio.h>
    
    char str[20];  // String with 19 characters (because last character is null character)
    
    int main() {   
        fgets(str, 20, stdin);  // Read string
        puts(str);  // Print string
        return 0;
    }
    

    【讨论】:

    • 我试过了。要按 Enter 完成输入,我需要填写所有 19 个字符。但是,如果我需要输入例如 10 个字符,我该如何完成?
    猜你喜欢
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多