【发布时间】:2014-05-08 15:52:16
【问题描述】:
对于学校作业,我必须编写一个读取整数的 C 程序,该数字前面可能有一个“+”或“-”。我只能使用 getchar()。
我可以使用int i = ch - '0' 将单个字符转换为整数,但我想读取多个字符。除此之外,我需要检查输入是否正确(例如,没有非数字字符)
到目前为止我有这个:
int main(void) {
int i;
char ch;
printf("voer een getal in: ");
while ((ch = getchar()) != '\n') {
i = ch - '0';
}
printf("het ingevoerde getal is: %d\n", i);
return EXIT_SUCCES;
}
编辑:我知道这不是真正解决此类问题的地方(我应该学会自己解决它,而不是让其他人为我解决它)但我不知道该怎么办了。谢谢你指引我正确的道路
【问题讨论】:
-
提示:
423 = 4*100 + 2*10 + 3. -
@herohuyongtao 提示应该在哪里帮助我?编辑:啊,我明白了,但是我如何仅使用 getchar 获得多个字符?
-
试着自己弄清楚。
-
首先,将
i = ch-'0'替换为i = 10*i+ch-'0'。您仍然需要处理最初的+/-字符问题,以及断言输入正确性...