پاسخ : جداسازی اعداد از متن در C  یا c++ برای میکرو AVR
	
		
			
			
				
	
باسلام.
;کد شما به نظر نباید درست کار کنه، چون اول آوردید یک رشته تعریف کردید به نام str و بعد با استفاده ازgetchar اومدید یک کاراکتر دریافت کردید و در متغیر دیتا که تعریف نشده ریختید!
تا اینجای کار چند تا اشکال وجود داره:اولا متغیر بهتره داخل سوپرلوپ تعریف نشه دوما با استفاده از getchar میشه فقط یک کاراکتر دریافت کرد همچنین این سری توابه به دلیل مشکلات بافر اورفلو به کل غیراستاندارد هستن و به جای اونها باید از fgets یا fputs استفاده کرد.سوما کاراکتر دریافتی در str ذخیره نشده.
در بخش sscanf شما فرمت رو به کل اشتباه نوشتید و %c به معای کاراکتر هست و فرمت باید به این شکل میبود:
 
فرمت %s به معنای رشته هست و ستاره قرار گرفته در پشت اون یعنی اون رشته رو نادیده بگیر.برای g بعد عدد داخل دیتای شما میشه از %*c استفاده کرد.
							
						
					
					نوشته اصلی توسط flightsazan
					
						
						
							
							
							
							
								
								
								
								
									نمایش پست ها
								
							
						
					
				
				
			
		باسلام.
;کد شما به نظر نباید درست کار کنه، چون اول آوردید یک رشته تعریف کردید به نام str و بعد با استفاده ازgetchar اومدید یک کاراکتر دریافت کردید و در متغیر دیتا که تعریف نشده ریختید!
تا اینجای کار چند تا اشکال وجود داره:اولا متغیر بهتره داخل سوپرلوپ تعریف نشه دوما با استفاده از getchar میشه فقط یک کاراکتر دریافت کرد همچنین این سری توابه به دلیل مشکلات بافر اورفلو به کل غیراستاندارد هستن و به جای اونها باید از fgets یا fputs استفاده کرد.سوما کاراکتر دریافتی در str ذخیره نشده.
در بخش sscanf شما فرمت رو به کل اشتباه نوشتید و %c به معای کاراکتر هست و فرمت باید به این شکل میبود:
sscanf(str,"%*s%f%*s",&data)





 
							
						






دیدگاه