c - 阅读数字

标签 c

非常感谢所有回答的人,我意识到我在这方面做得很烂,我会考虑每一个答案,希望我能设法编译一些有用的东西

最佳答案

一些说明:

  1. 分配 500 MB 以防万一似乎不是个好主意。更好的方法是先分配少量内存,如果不够,则分配两倍大的内存,等等(如果您按字符读取数字,这会起作用)。 重要:在每次(重新)分配之后,您必须立即检查您的 malloc 调用是否成功(即它返回的不是 NULL),否则您将无法继续。
  2. 第一个 getchar() 是做什么用的?
  3. 不使用gets(),你可以尝试一个一个地读取字符,直到遇到不是数字的东西,此时你可以认为数字输入已经完成(这是最简单的方式,显然可以以不同方式处理用户输入)。
  4. 不需要为使用 gets() 读取的内容添加“\0”,afaik(对于将逐个字符读取的内容,这是有意义的)。
  5. 最后但同样重要的是,您还应该注意实际释放分配的内存(即在完成 num 后调用 free())。不这样做会导致内存泄漏。
  6. (更新)printf("%c",num[0]); 将只打印字符串 num 的第一个字符。如果你想打印出整个字符串,你应该调用 printf("%s",num);

关于c - 阅读数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332503/

相关文章:

c++ - 将字母转换为整数,然后求字符串之和

c - "not all control paths return a value”在这个程序中意味着什么?

c - C 中的 WinSock 程序,只能在本地计算机上运行

c++ - 比较从同一确切源构建的两个可执行文件的校验和

c - 反 sin 函数仅返回 0

c - 在 C 中重构重命名

c - 少量代码中的段错误

c - 链表斐波那契数列运行时错误

c - "Hello world"程序未运行

c - 基于Web的C语言开发