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,449評論 0 2
  • 數據類型轉換: 1.當賦值符號兩邊的數據類型不同的時候,數據類型轉換是自動的,不需要程序員插手 當給 int 類型...
    Munin_閱讀 831評論 0 2
  • 太久沒玩狼人殺了,本來水平就不高,加上智力嚴重下降,整個思維混亂,還力保狼人,榮獲“全場最坑隊友”,盤盤村民...
    _aqu閱讀 245評論 6 1
  • 今天一大家子去吃素菜的自助餐,特別喜歡幾個字“勤拿少取,避免浪費”。 大寶寶哥哥帶著二寶寶妹妹去取...
    華祺麟閱讀 254評論 0 0