关于sscanf与结构体不能联用的问题
生活随笔
收集整理的這篇文章主要介紹了
关于sscanf与结构体不能联用的问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
sscanf對(duì)空間的開辟是連續(xù)的。
舉個(gè)例子: 如果結(jié)構(gòu)體中定義一個(gè)s1[10],再定義一個(gè)s2[3],輸入s1后, 通過sscanf對(duì)s2賦值, 這時(shí),s2的空間就會(huì)開辟在s1后面, 如果我們輸入的s1正好10個(gè)字母, 那么接下來輸出s1時(shí), 就會(huì)連帶著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數(shù)組時(shí),需要定義的大些。
總結(jié)
以上是生活随笔為你收集整理的关于sscanf与结构体不能联用的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1003 我要通过! (20分)_26行
- 下一篇: 【详解!思路清晰】1095 解码PAT准