筆主今日去筆試,第一道編程題十分簡單,但編譯器就是無法通過。原因就出在多行字符串的讀取之上。
#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