我想创建一个程序,该程序可以从标准输入中读取行并将每行解释为两个由空格分隔的整数。稍后,我将使用共享库来处理这些数字。在我开始之前,我想知道,从行中解析数字的最佳方法是什么。类似于“ getline”和将数字存储到变量的组合?我只存储数字,直到给出下一个数字。

最佳答案

如果要从字符串中提取整数,请使用

sscanf(arr,"%d %d",&num1,&num2);


其中,arr是包含要从中提取两个整数的数据的char数组,而num1num2是两个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/

10-11 18:48