我想创建程序,它可以从标准输入读取行并将每行解释为由空格分隔的两个整数。稍后我将使用共享库来处理这些数字。在开始之前,我想知道,从行中解析数字的最佳方法是什么。像“getline”的组合和存储数字到变量的东西?我只存储数字,直到给出下一个数字。
答案 0 :(得分:0)
如果要从字符串中提取整数,请使用
sscanf(arr,"%d %d",&num1,&num2);
其中arr
是包含要从中提取两个整数的数据的char数组,而num1
和num2
是两个int
变量。
否则您可以使用
直接扫描两个int
scanf("%d %d",&num1,&num2);
最好检查scanf
(或sscanf
)是否成功。如果成功,这两个都将返回2(在您的情况下)。所以只需使用以下内容检查:
if(scanf("%d %d",&num1,&num2)==2)
//successful
else
//failed
或者如果您使用sscanf
,
if(sscanf(arr,"%d %d",&num1,&num2)==2)
//successful
else
//failed