pat 1018 scanf讀取字元 段錯誤

2021-06-20 15:43:03 字數 1049 閱讀 6370

輸入格式:

10

c jj b

c bb b

b cc c

c bj b

b cj j

翻譯為輸入流為:

10\nc j\nj b\n........

while(scanf("%d", &n));

scanf("%c %c", &a, &b);

讀入10後,指標指向了\n,

在使用%c時,是不會跳過空格,製表符,換行符的。

所以讀取的結果是a = '\n';這就與本意不對了。

scanf叫格式化輸入,那麼我們應該使用下面的:

while(scanf("%d\n", &n)

原因:

1.訪問越界;

2.陣列太小;

#include #include #include #include #include #include #include #include #include #include #define size 50000      //題目說資料量不超過10^5,所以設定為10^5/2

//#define size 2 //段錯誤

//#define size 10000 //段錯誤

//#define size 100000 //段錯誤

using namespace std;

int judge(string s1, string s2)

void best(string buf, int n)

int main()//read

printf("%d %d %d\n", cn1, cn3, cn2);

printf("%d %d %d\n", cn2, cn3, cn1);

best(b1, cn1);

printf(" ");

// 乙

best(b2, cn2);

printf("\n");

}//while

return 0;

}

Qt讀取字元資訊亂碼

背景 使用某裝置讀取身份證資訊,在使用裝置自帶sdk在vs2008可以讀取正確,在qt讀取顯示亂碼。原因 vs2008裡面,預設是unicode編碼模式,而qt在windows下面預設是gbk編碼模式,所以顯示亂碼。解決方法 qbytearray byte idcarddata.name qtext...

C 讀取字串

我們在使用鍵盤輸入字串的時候,輸入流對於字串的讀取有幾種不同的實現方式。cin cin 在讀取字串時使用空白 空格 製表符和換行符 來確定字串的結束位置,這說明cin在獲取字元陣列輸入時只能讀取乙個單詞。而讀取該單詞後,cin將該字串放到陣列中,並在結果自動新增空字元。so,在某些時候,我們需要使用...

讀取字串長度

c 關於讀取乙個字串長度 包括空格回車 自用 方法1 include include using namespace std intmain 方法2 include include include include include using namespace std intmain 方法3 inc...