大家好 我是小江,前几天深夜睡不着的时候在逛贴吧 看到一个这样的问题 说如何用一行控制台显示出 5W 字符,觉得这题目蛮有意思的,这个题目是那位兄弟说正在面试,考官给他的问题,好奇的我放下了手机思考了几分钟, 由于前几天自己都在忙所以没时间写 现在趁着在这个小旅馆里 有台可以稍微用的电脑,所以就把这篇文章完成吧,好了废话不说啦,现在开始吧。
首先我们先准备几万个字符,说道几万个字符,那我们哪里去弄那么多字符呀?不是网上随便复制吧?
答:那肯定不是啦;
这里我们用个小程序来解决这些字符,我这里为了快速我就直接用大写字符了其他字符我就不用啦,大家可以根据自己喜欢的字符修改就好了
下面附上代码:
- 1#include 2#include 3 const int N = 32000;
- 4 int main() 5 {
- 6 int i = 0;
- 7 FILE * fp;
- 8
- if ((fp = fopen("C://文件名.txt", "a")) == NULL) 9 {
- 10 printf("error!");
- exit(0);
- 11
- }
- 12
- for (; i19 + 65; fputc(ch, fp);
- }
- 13 fclose(fp);
- 14
- return 0;
- }
这段代码是自动生成 3.2W 字符的,如果想更多可以自己修改上面的值。
生成好以后下面我们就来看看怎么一行显示 3.2W 字符。
首先我们需要个数组容量,而且是几万的数组容量,这里考虑到数组只用一次,所以我这里就用静态存储 (static)
我们先把上面生成的字符内容从文件中读出来,然后存到数组中,如果现在直接输出的话控制台只能显示大概 40 多个字符;
控制台为什么才只能显示 40 多个字符呢,是因为控制台的宽度不够,然后只能显示一行默认多少个字符,这里既然说到宽度不够那我们就来修改下宽度。
下面用到的代码:
- 1system("mode con cols=宽度 lines=高度");
我们执行这段 DOS 命令就能修改控制台的窗口大小了。
下面我就给大家直接附上代码了:
- 1#include 2#include 3#include 4 const int N = 32000;
- 5 static char s[32000];
- 6 int main(int argc, char * argv[]) 7 {
- 8 int i = 0,
- j = 0;
- 9 char ch;
- 10 FILE * fp;
- 11 system("mode con cols=32000 lines=100");
- 12
- if ((fp = fopen("C://1.txt", "a")) == NULL) {
- printf("error!");
- exit(1);
- }
- 13
- for (; i19 + 65; fputc(ch, fp);
- }
- 14 fclose(fp);
- 15 fp = fopen("C://1.txt", "r");
- 16
- while (!feof(fp)) {
- fscanf(fp, "%s", s);
- }
- 17 j = ftell(fp);
- 18 printf("%s\n", s);
- 19 printf("%d\n", j);
- 20 fclose(fp);
- 21
- return 0;
- 22
- }
在来附上一张结果图:
总结:本篇文章其实主要的就是修改了控制台的宽度然后就能一行输出几万字符,还有就是可能有些人会问,为什么我不弄 5W 个字符,我自己试过 5W 个字符的可是这电脑不行,不知道是电脑的问题还是本来就不可以那么多,大家其实也可以试试更多的字符,可能是小旅馆电脑的问题吧,文章没有什么技术含量,但说不定对你有点帮助,最后谢谢大家阅读。
来源: http://www.cnblogs.com/c-c-c-c/p/7078620.html