2011-09-24 55 views
-1

我目前刚刚学习C和一个项目,我需要读取来自用户的整数输入。目前我使用的代码如下所示:帮助基本阅读用户输入C

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc, char *argv[]) 
{ 

    int a, b; 

    printf("Please enter your first number"); 
    while((a = getchar()) != '\n') { 
    } 

    printf("test"); 

    return 0; 
} 

我不知道如何用getchar获取数字,然后将其存储在我可以使用的变量中。 另外我在while语句中使用='\ n',因为我不太了解EOF的工作方式(如在K & R书中),因为每当我使用EOF时,我都会进入这个循环,我无法离开。

感谢任何人都可以提供的建议。

+0

'getchar'读取'char',因为它的名字所表示的。你为什么期望它读一个'int'? –

+0

@Ken:有趣的是,它返回一个'int',呃? ;-)我认为关键点不在于它获取的类型,而在于它接受的数据格式(表示自身的字符与表示以十进制表示的整数的字符)。 –

+0

@R。 - 这就是我想说的;你做得更好。 :)感谢您的澄清。 –

回答

4

您可以使用scanf。

有一个看看这个例子:

printf("Please enter your first number "); 
int number=0; 
scanf ("%d",&number); 
0

scanf函数答案矿井上面是正确的,但如果你没有读过有关地址或格式字符串,它可能难以神交。

您可以通过数值减去“0”的字符转换为其整数相当于:

char c = getchar(); 
int n = c - '0'; 
+0

注意:这会减去'0'(它是48)的ascii值,而不是文字值零。 – l8nite