|
发表于 2021-10-18 16:41:18
|
显示全部楼层
本楼为最佳答案
本帖最后由 jackz007 于 2021-10-18 16:50 编辑
第 13 行 "偷走" 了第一个数字
- #include <stdio.h>
- #include <stdlib.h>
- int main(void)
- {
-
- int i , count = 0 ;
- char ch , * ptr = NULL ;
- printf("请输入一个整数:") ;
- while((ch = getchar()) != '\n') { // 所有的键盘输入统一归口到这里,杜绝丢失键盘输入字符的问题
- count ++ ;
- if(ptr = (char *) realloc(ptr , count * sizeof(char))) {
- ptr[count - 1] = ch ;
- } else {
- fprintf(stderr , "内存分配失败!\n") ;
- count = 0 ; // 设置内存分配失败标志
- break ; // 内存分配失败,继续循环没有意义,所以,必须退出循环
- }
- }
- if(count) {
- printf("你输入的整数是:") ;
- for(i = 0 ; i < count ; i ++) printf("%c" , ptr[i]) ;
- free(ptr) ; // 养成好习惯很重要!
- printf("\n") ;
- }
- }
复制代码 |
|