关于sscanf与结构体不能联用的问题
生活随笔
收集整理的這篇文章主要介紹了
关于sscanf与结构体不能联用的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
sscanf對空間的開辟是連續的。
舉個例子: 如果結構體中定義一個s1[10],再定義一個s2[3],輸入s1后, 通過sscanf對s2賦值, 這時,s2的空間就會開辟在s1后面, 如果我們輸入的s1正好10個字母, 那么接下來輸出s1時, 就會連帶著s2一起輸出。
如下代碼段:
include<bits/stdc++.h> using namesapce std;struct student{char s1[10], s2[3]; };int main {student s;cin >> s.s1;sscanf(s.s1, "%3s", s.s2);cout<< s.s2; }輸入:1234567890
輸出:1234567890123
解決辦法:在定義char數組時,需要定義的大些。
總結
以上是生活随笔為你收集整理的关于sscanf与结构体不能联用的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1003 我要通过! (20分)_26行
- 下一篇: 【详解!思路清晰】1095 解码PAT准