如何从用户c获取输入整数

时间:2012-03-02 17:07:34

标签: c input do-while

我想从用户输入中获取矩阵值,行和列。所以我正在实施do while来做到这一点: 这仅适用于行:

do {
        printf ("Inserisci il numero di righe ( intero-positivo-diverso da 0): ");
        scanf ("%d",&righe);
    } while (righe<=0);

我想检查用户是否只插入整数。我该怎么办?

4 个答案:

答案 0 :(得分:2)

scanf返回一个整数,表示它成功读取了多少“东西”。你可以在有条件的情况下测试它,看看它是否得到了你想要的东西。例如:

const int result = scanf ("%d",&righe);
if (1 != result) {
  /* didn't get the 1 input we were looking for, do something about it! */
}

你想区分EOF而不是整数。

答案 1 :(得分:1)

检查scanf()的返回值,它应该返回已转换字符串的数量,如果是!= 1,则输入无法转换为整数。

参考:scanf

答案 2 :(得分:0)

你正在寻找这个 ctype.h

答案 3 :(得分:0)

你的代码是正确的。做你想做的事的正确方法......