我想创建一个程序,该程序可以从标准输入中读取行并将每行解释为两个由空格分隔的整数。稍后,我将使用共享库来处理这些数字。在我开始之前,我想知道,从行中解析数字的最佳方法是什么。类似于“ getline”和将数字存储到变量的组合?我只存储数字,直到给出下一个数字。
最佳答案
如果要从字符串中提取整数,请使用
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
关于c - C-标准输入变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27021912/