【问题标题】:Looping input request from a char array in C [closed]从C中的char数组循环输入请求[关闭]
【发布时间】:2020-09-01 20:00:24
【问题描述】:

运行程序并输入文本时,它会一次又一次地要求我插入输入,直到我只输入一个字符。

注意:它不在任何循环循环中,我不知道问题是什么。 (我使用 cs50 库来获取字符)。

char nameless[] = { get_char("Insert the text here: ")};

【问题讨论】:

  • 因为名字告诉我们这是一个只获取一个字符的函数...man.cs50.io/3/get_char
  • 为什么标签中有cc#?看起来两者都不是。
  • 是c,我正在学习cs50课程

标签: arrays c loops input cs50


【解决方案1】:
char nameless[] = {get_char("Insert the text here: ")};

如果你查找get_char(),它清楚地表明

提示用户输入标准输入中的一行文本并返回等效的字符;如果文本不代表单个字符,则用户被重新提示

您只需输入一个字符。不是你所说的一行字符或“文本”。

Enter char: a

就是这样。

这是一个有效的代码示例:

#include <cs50.h>

int main(void)
{
     // attempt to read character from stdin
     char c = get_char("Enter char: ");

     // ensure character was read successfully
     if (c == CHAR_MAX)
     {
         return 1;
     }

     char next = get_char("You just entered %c. Enter another char: ", c);

     if (next == CHAR_MAX)
     {
        return 1;
     }

     printf("The last char you entered was %c\n", next);
 }

您可以查看CS50 Library for C

【讨论】:

  • 谢谢,但我的程序需要输入文本(如书页中的文本),因此一次输入一个字符不是我想要的。抱歉,我是编程新手。
  • @markC 这完全不是问题。最好的学习方法是查资料。另外,请在您的问题中确切地询问您需要什么。要获取整页文本并打印,请查看:stackoverflow.com/questions/3463426/…
  • 感谢您的理解,我需要输入一个长文本(例如来自书页),但不是来自文件,而是来自用户的键盘(例如扫描仪),然后将该输入放入char数组(因为我需要计算字母,单词和句子,但这不是问题,我已经做到了,我只需要将那个输入放入数组中。)
  • CS50 库中有一个`get_string()` 函数,是不是。它返回一个“string”,这是一个伪装的char *
猜你喜欢
  • 2016-11-19
  • 2020-10-06
  • 2018-04-28
  • 2013-12-17
  • 2018-03-07
  • 2013-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多