c - 滚动文本程序

标签 c string gets

这是我正在尝试编写的一个更大程序的一部分,但由于某种原因我似乎陷入了这部分,我希望有人能解释为什么我遇到这个问题。

所以我在这篇文章中想要关注的是接受一个整数,它指定后面有多少个单词。然后,我想接收每个单词并立即打印出来。

这就是我所拥有的。

    int main(){

        int i;
        int numWords;
        char word[100];



        scanf("%d", &numWords);

        for(i=0;i<numWords;i++){
            gets(word);
            printf("The word is %s\n", word);

        }

    return 0;
}

我有一个输入文件,内容如下:

5
Hello
world
this
is
happening

这就是正在输出的内容

The word is
The word is Hello
The word is world
The word is this
The word is is

就像我说的,这只是我需要做的一部分,但弄清楚这一点将帮助我完成剩下的事情。

最佳答案

改变

scanf("%d", &numWords);

fgets(word, sizeof(word), stdin);
sscanf(word, "%d", &numWords);

这样 fgets() 将读取数字后的换行符,而第一个 gets() 不会读取它并停止。

关于c - 滚动文本程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35695126/

相关文章:

c - 简单C : atof giving wrong value

string - Terraform 将元组展平为字符串集

python - 如何在Python 3中显示单词中的前3个字母,但用 "-"破折号替换单词的其余部分

c++ - 如何从十六进制字符串中获取小数

c - 除非打印字符串,否则程序崩溃

c - 如何从 C 字符串中删除第一个字符?

c - fgets和gets之间的区别

c - Gets(string#) 函数跳过先获取请求

c - 如何在 C [而不是 C++] 中多次扫描包含多个单词的字符串?

c++ - 部分卡片上的 cuda 应用程序