黑马程序员技术交流社区

标题: 关于c语言对大数据量的读入问题 [打印本页]

作者: Freedam    时间: 2014-4-4 12:34
标题: 关于c语言对大数据量的读入问题
本帖最后由 Freedam 于 2014-4-6 16:49 编辑

在编程的时候有时候总会遇到读入一大堆字符串或者是从键盘或文件中读入一些文件流,这些需求利用具体的哪些C语言中的函数或者是方法可以很好的处理一下。以前自己写的程序总是定义一个大的字符数组,现在发现这种做法会出很多问题,总会越界。请大家帮忙指点一下。
作者: zjw66485542    时间: 2014-4-4 12:55
你自己以前用一个大的字符数组,总越界或者溢出,你要注意如果你定义了一个 char a[10];这个数组的长度是10
但是,字符的个数只能是10-1个啊,计算机会默认加上一个\0
你也可以利用指针 char *a="abcd"这样的来输入,但是要注意这个是无法修改的
作者: Freedam    时间: 2014-4-4 13:56
哦 这个我理解 那有没有更好的方法去解决这个问题。就是比如说定义一个别的数据类型或是利用其它方法去接收一堆毫无规律的字符串或是流数据并将这堆数据进行输出处理。
作者: 一只小菜鸟    时间: 2014-4-4 16:05
本帖最后由 一只小菜鸟 于 2014-4-4 16:06 编辑

用宏定义改变大小。
  1. #include <stdio.h>
  2. #define N 200
  3. int main(){
  4.     char s[N];
  5.     scanf("%s",s);
  6.     printf("%s",s);
  7.     return 0;
  8. }
复制代码


作者: Freedam    时间: 2014-4-4 16:48
一只小菜鸟 发表于 2014-4-4 16:05
用宏定义改变大小。

用宏定义倒是可以,但是如果一下接收一整个文件那么多的字符串是不还得手动改宏定义的值。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2