【问题标题】:How do you use scanf in a for loop so it does not stop looping on the first try?如何在 for 循环中使用 scanf 以使其在第一次尝试时不会停止循环?
【发布时间】:2021-03-31 04:24:49
【问题描述】:
for(int i=0;i<num; i++)
{
    char word[32];
    scanf(" %[^\n]s",word);
    makeDictionary(word, readDictionary);
}

我有一个程序,我想向用户询问某些字符串 n 次(允许间距)。但是,当他们输入例如 n = 2 时,它只循环一次并且存在。我知道我的 scanf 有问题。

我是 Java 的,我是 C 的初学者。字符串的处理方式非常不同。

【问题讨论】:

  • ????????请在此处以纯文本形式发布代码、错误、示例数据或文本输出,而不是难以阅读、无法复制粘贴以帮助测试代码或在答案中使用的图像,并且对依赖的人构成障碍在屏幕阅读器或翻译工具上。您可以编辑问题以在问题正文中添加代码。为了便于格式化,请使用{} 按钮标记代码块,或使用四个空格缩进以获得相同的效果。 屏幕截图的内容无法搜索、作为代码运行或复制和编辑以创建解决方案。
  • 在 C 语言中,检查您调用的函数的返回值并根据其含义做出反应非常重要。
  • 它会循环多少次取决于num,不幸的是我们无法知道num 是什么,因为您发布的图像显示太少。如果可以的话,也不要使用文本而不是图像,图像非常烦人。
  • @KrishnaKanthYenumula 感谢您为转录图片所做的努力。但这只是说明了为什么在 StackOverflow 上不欣赏文本图片,因为您键入的代码与图片中的代码不完全相同。格式说明符字符串的差异甚至可能是相关的。问题的作者可以选择复制粘贴文本,没有其他人。所以作者应该用文字代替图片。
  • Hidaisyen,请直接在此处提供minimal reproducible example 文本。因为meta.stackoverflow.com/a/285557/7733418(@Bonny 你评论的效果相同,请尝试在像你这样的适当评论中输入[mre]。)

标签: c for-loop scanf


【解决方案1】:

这段代码可以帮助你:

#include <stdio.h>
#include <string.h>

int main()
{
 int N;
 do
 {
      printf("Give me number of words :");
      scanf("%d",&N);
 }while(N<1);


 for(int i=0;i<N;i++)
 {char str[20];
      printf("\nGive me the %d word :",i+1);
      scanf("%s[^\n]",str);
      printf("%s",str);
 }

}

【讨论】:

    猜你喜欢
    • 2012-03-05
    • 2022-01-11
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 2023-03-07
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多