当前位置:  开发笔记 > 编程语言 > 正文

读完整数后,C无法读取字符串

如何解决《读完整数后,C无法读取字符串》经验,为你挑选了1个好方法。

以下是我的源代码.读完整数后,程序应该等到我键入一个字符串然后按回车键.但是,只要我输入整数,程序就会退出.你能告诉我我的错吗?

#include 

#include 

int main()
{

    int n;
    char command[255];

    scanf("%d", &n);
    fgets(command, 255, stdin);

    return 0;
}

我提到我也尝试使用gets(command),但我得到了相同的结果.



1> gsamaras..:

有一个尾随换行符,因为你按下ENTER整数后.通过改变它来吃它:

scanf("%d", &n);

对此:

scanf("%d ", &n); // this will eat trailing newline

正如chux所说,scanf("%d ", &n)直到用户输入数字并且一些跟随非白空间才会返回.


相关问题:C:多个scanf,当我输入一个scanf的值时,它会跳过第二个scanf

另外我还记得我的例子:用scanf读取char时的注意事项.

另外,正如Marco所说,你可以使用:scanf("%d\n", &n);,它专门针对换行符.


还有这种可能性:

#include 
#include 

int main()
{

    int n;
    char command[255], newline;

    scanf("%d", &n);
    scanf("%c", &newline); // eat trailing newline
    fgets(command, 255, stdin);

    return 0;
}

但是,我个人会使用两个fgets()而不是scanf().:)

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有