c語言輸入一行未知個數數字存入數組


轉載https://www.cnblogs.com/wd1001/p/4826855.html

一直有個疑問輸入一行數字存入數組時若不知道數字的個數怎么辦,最容易想到的辦法就是接收字符然后轉化為數字,但這樣太過麻煩。

今天上網查了下,說可以用ungetc()函數將字符送回輸入流,在這里總結歸納一下

此外還意外的解決了另外一些以前遇到的問題,也是在調試代碼時發現的,用此段代碼可以用除了空格以外的字符作為分隔符,而且分隔符的長度也可以很長:如輸入12qwertyuiop34asdfghjkl123,23zxc45  最后得到的數組為:a[0]=12,a[1]=34,a[2]=123,a[3]=23,a[4]=45

#include<stdio.h>
#include<ctype.h>
int main()
{
	int a[1000];
	char c;
	int i = 0;
	int n = 0;
	while ((c = getchar()) != '\n')
	{
		if (isdigit(c))
		{
			ungetc(c, stdin);//將c送回輸入流
			scanf("%d", &a[n++]);
		}	
		
	}
	     for (i = 0; i < n; i++)
		     {
		         printf("%d ", a[i]);
		     }
	     return 0;
	
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM