大家好 我是小江,前幾天深夜睡不着的時候在逛貼吧 看到一個這樣的問題 說如何用一行控制台顯示出5W字符,覺得這題目蠻有意思的,這個題目是那位兄弟說正在面試,考官給他的問題,好奇的我放下了手機思考了幾分鍾, 由於前幾天自己都在忙所以沒時間寫 現在趁着在這個小旅館里 有台可以稍微用的電腦,所以就把這篇文章完成吧,好了廢話不說啦,現在開始吧。
首先我們先准備幾萬個字符,說道幾萬個字符,那我們哪里去弄那么多字符呀?不是網上隨便復制吧?
答:那肯定不是啦;
這里我們用個小程序來解決這些字符,我這里為了快速我就直接用大寫字符了其他字符我就不用啦,大家可以根據自己喜歡的字符修改就好了
下面附上代碼:
1 #include <stdio.h> 2 #include <stdlib.h> 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(;i<N;++i) {ch=rand()%19+65;fputc(ch,fp);} 13 fclose(fp); 14 return 0;}
這段代碼是自動生成3.2W字符的,如果想更多可以自己修改上面的值。
生成好以后下面我們就來看看怎么一行顯示3.2W字符。
首先我們需要個數組容量,而且是幾萬的數組容量,這里考慮到數組只用一次,所以我這里就用靜態存儲(static)
我們先把上面生成的字符內容從文件中讀出來,然后存到數組中,如果現在直接輸出的話控制台只能顯示大概40多個字符;
控制台為什么才只能顯示40多個字符呢,是因為控制台的寬度不夠,然后只能顯示一行默認多少個字符,這里既然說到寬度不夠那我們就來修改下寬度。
下面用到的代碼:
1 system("mode con cols=寬度 lines=高度");
我們執行這段DOS命令就能修改控制台的窗口大小了。
下面我就給大家直接附上代碼了:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <windows.h> 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(;i<N;++i) {ch=rand()%19+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個字符的可是這電腦不行,不知道是電腦的問題還是本來就不可以那么多,大家其實也可以試試更多的字符,可能是小旅館電腦的問題吧,文章沒有什么技術含量,但說不定對你有點幫助,最后謝謝大家閱讀。
