美文网首页
C控制台读取多行字符串

C控制台读取多行字符串

作者: crossover_9324 | 来源:发表于2017-10-29 23:13 被阅读206次

    笔主今日去笔试,第一道编程题十分简单,但编译器就是无法通过。原因就出在多行字符串的读取之上。

    #include "stdafx.h"
    #include<stdlib.h>
    int _tmain(int argc, _TCHAR* argv[])
    {
        char c[20] ;
        scanf_s("%d", &N);
        for (int i = 0; i < N;i++)
        {
            scanf_s("%s", c);
        }
            system("pause");
        return 0;   
    }
    

    以上代码无法获得正确的输入,应该是由于scanf不能接受空格、制表符Tab、回车等,所以转而使用gets。

    #include "stdafx.h"
    #include<stdlib.h>
    int _tmain(int argc, _TCHAR* argv[])
    {
        char c[20] ;
        scanf_s("%d", &N);
        getchar();
     /*scanf()函数接受输入以后,回车被保存在输入流中了, 在scanf()后面加一个getchar()就好了。 这样会吃 掉多余的回车符,后面的gets()就可以接受输入了。*/  
        for (int i = 0; i < N;i++)
        {
            gets_s(c);
        }
            system("pause");
        return 0;   
    }
    

    //参考http://blog.csdn.net/svap1/article/details/42740509?locationNum=14&fps=1

    相关文章

      网友评论

          本文标题:C控制台读取多行字符串

          本文链接:https://www.haomeiwen.com/subject/rrpupxtx.html