C控制台读取多行字符串

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

#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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hel...
    去留无意hmy阅读 1,310评论 0 1
  • 头文件stdio.hc语言的标准输入输出,常用printf;scanfiostreamc++语言的标准输入输出,重...
    bobobe阅读 2,458评论 0 2
  • 数据类型转换: 1.当赋值符号两边的数据类型不同的时候,数据类型转换是自动的,不需要程序员插手 当给 int 类型...
    Munin_阅读 840评论 0 2
  • 太久没玩狼人杀了,本来水平就不高,加上智力严重下降,整个思维混乱,还力保狼人,荣获“全场最坑队友”,盘盘村民...
    _aqu阅读 245评论 6 1
  • 今天一大家子去吃素菜的自助餐,特别喜欢几个字“勤拿少取,避免浪费”。 大宝宝哥哥带着二宝宝妹妹去取...
    华祺麟阅读 254评论 0 0