當前位置:首頁 » 編程語言 » c語言實現開始頁面進度條
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言實現開始頁面進度條

發布時間: 2023-05-14 00:10:50

c語言進度顯示怎麼編寫

這里有個現成的!拿去改改就行了!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
#include <winbase.h>
typedef struct node{ /手陵* 定義鏈表 */
char name[20]; /* 姓名 */
char address[40]; /* 地址 */
char phone[15]; /* 電話 */
long zip; /* 郵編 */
struct node *next;
}add_list;
struct person{ /* 定義一個結構備用 */
char name[20];
char address[50];
char phone[15];
long zip;
};
FILE *fp;
add_list *tail,*head; /* 定義鏈表尾節點指針和頭指針 */
/* 從文件中讀出數據生成通訊錄鏈表,如果文件不存在,生成空鏈表 */
add_list *load(char filename[])
{ add_list *new1,*head;
struct person t;
head=(add_list *)malloc(sizeof(add_list));
tail=head=NULL;
if((fp=fopen(filename,"rb"))==NULL)
return head;
else
if(!feof(fp))
if(fread(&t,sizeof(struct person),1,fp)==1)
{ new1=(add_list *)malloc(sizeof(add_list)); /* 連宏穗入鏈蔽薯卜表第一個節點 */
strcpy(new1->name,t.name);
strcpy(new1->address,t.address);
strcpy(new1->phone,t.phone);
new1->zip=t.zip;
head=tail=new1;
new1->next=NULL;
while(!feof(fp)) /* 連入鏈表其餘節點 */
{ if(fread(&t,sizeof(struct person),1,fp)==1)
{ new1=(add_list *)malloc(sizeof(add_list));
strcpy(new1->name,t.name);
strcpy(new1->address,t.address);
strcpy(new1->phone,t.phone);
new1->zip=t.zip;

tail->next=new1;
new1->next=NULL;
tail=new1;
}
}
}
fclose(fp);
return head;
}
/* 自定義函數,進度條 */

void jintiao(void)
{ int i;
for(i=0;i<78;i++) putchar('.');
printf("\r\a");
for(i=0;i<78;i++)
{
if(i==0) putchar('|');
Sleep(100);
printf("\b|>");
}
}
/* 插入一條通訊錄記錄 */
void insert(add_list **head)
{ add_list * new1;
new1=(add_list *)malloc(sizeof(add_list));
system("cls");
printf("\n請輸入姓名:"); getchar();gets(new1->name);
printf("\n請輸入地址:"); scanf("%s",new1->address);
printf("\n請輸入電話:"); scanf("%s",new1->phone);
printf("\n請輸入郵編:"); scanf("%ld",&new1->zip);
if(*head==NULL) /* 表頭為空時 */
{ *head=new1;
new1->next=NULL;
tail=new1;
}
else /* 插入到表尾 */
{ tail->next=new1;
new1->next=NULL;
tail=new1;
}
printf("輸入完成,按回車鍵返回......");
getchar();
getchar();
}
/* 將通訊錄鏈表中的內容保存到指定文件中 */
void save(add_list *head,char filename[])
{ add_list *p;
struct person t;
if((fp=fopen(filename,"wb"))==NULL)
{ printf("錯誤:不能打開文件%s\n",filename);
exit(1);
}
else
{ p=head;
while(p!=NULL)
{ strcpy(t.name,p->name);
strcpy(t.address,p->address);
strcpy(t.phone,p->phone);
t.zip=p->zip;
fwrite(&t,sizeof(struct person),1,fp);
p=p->next;
}
}
fclose(fp);
printf("保存成功,按回車鍵返回......");
getchar();getchar();
}
/* 顯示通訊錄內容 */
void display(add_list *head)
{ add_list *p;
p=head;
if(p!=NULL)
printf("姓名:\t\t住址:\t\t郵編:\t\t電話:\n");
while(p!=NULL)
{
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
p=p->next;
}
printf("按回車鍵返回......");
getchar();getchar();
}
/* 按姓名查詢通訊錄記錄 */
int search(add_list *head)
{ add_list *p;
char name[20];
int flag=0;
printf("請輸入要查找的人的姓名:");
getchar();
gets(name);
p=head;
while(p!=NULL)
{ if(strcmp(name,p->name)==0)
{ printf("姓名:\t\t住址:\t\t郵編:\t\t電話:\n");
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
flag=1;
}
p=p->next;
}
return flag;
}
/* 按姓名刪除一條通訊錄記錄 */
int delete1(add_list **head)
{ add_list *p,*q,*t;
char name[20],c;
int flag=0;
printf("請輸入要刪除人的姓名:");
scanf("%s",name);
q=p=*head;
while(p!=NULL)
{ if(strcmp(name,p->name)==0) /* 找到要刪除的人 */
{ printf("姓名:\t\t住址:\t\t郵編:\t\t電話:\n");
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
printf("真的要刪除嗎?(Y:是,N:否)\n"); /* 徵求意見(刪&不刪) */
getchar();c=getchar();
if(c=='y'||c=='Y') /* 刪除 */
{ if(p==*head)
*head=p->next;
else
q->next=p->next;
t=p;
p=p->next;
free(t);
flag=1;
}
else /* 不刪,跳過 */
{ q=p;
p=p->next;
flag=1;
}
}
else /* 沒找到,繼續 */
{ q=p;
p=p->next;
}
}
return flag;
printf("按回車鍵返回......");
getchar();
}
/* 顯示菜單並選擇菜單項 */
int menu_select()
{ char c;
system("cls");
printf("\t\t********************通訊錄********************\n");
printf("\t\t\t 1:輸入新的通訊記錄\n");
printf("\t\t\t\t 2:刪除記錄\n");
printf("\t\t\t\t 3:查找\n");
printf("\t\t\t\t 4:保存文件\n");
printf("\t\t\t 5:瀏覽所有通訊記錄\n");
printf("\t\t\t\t 6:退出\n");
do{
printf("請輸入你的選擇(1~~6):");
c=getchar();
}while(c<'1'||c>'6');
return c;
}
/* 主函數 */
int main(void)
{ char filename[20];
char c;
int t;
printf("\n\n\n\n\n\n\t\t\t\t通訊錄啟動中...\n\n\n\n\n\n\n\n\n\n\n\n\n");
jintiao();
system("cls");
printf("請輸入通訊錄文件名稱:\n");
scanf("%s",filename);
getchar();
head=load(filename);
while(1)
{ c=menu_select();
switch(c)
{ case '1': insert(&head); break;
case '2': t=delete1(&head);
if(!t) printf("記錯了吧,沒這人!\n按回車鍵返回......"); getchar();getchar(); break;
case '3': t=search(head);
if(!t) printf("天啊!居然沒找到!\n按回車鍵返回......");getchar(); break;
case '4': save(head,filename); break;
case '5': display(head); break;
case '6': exit(0);
}
}
}

❷ 用c語言socket編程伺服器和客戶端能相互傳文件,請問怎樣在伺服器端設置帳號和密碼,在下載時能顯示進度條

1、可以在client端登入時write(發送)帳號和密碼給server端,當server端接受到內容時判斷是否是你預設的帳號密碼,是則允許下載,否則關閉其socket。
2、是要客戶端看到進度條? 這樣就要要求在下載文件時server端要先發這個文件的大小給client端,client端就可以通過這個大小和接受到的位元組數比較後列印進度條(printf("#");).
文件大小可用int stat(const char *restrict path, struct stat *restrict buf);函數獲取。

❸ 如何用C語言實現進度條

給題主一個簡單的進度條程序吧~

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>

#defineLEN10/*進度條長度*/

intmain(void){
floatp;/*進度條刻度*/
floatprogLen;/*程序總耗時*/
inti,j;
progLen=15.0;
for(i=1;櫻笑i<=progLen;i++){
system("cls");
p=(i/progLen)*LEN;/*計算程序當前進度之於進度條的比例*/
for(j=1;j<=(int)(p+0.5);j++)/*列印已執行刻度*/
printf("■"培旦);
for(j=1;j<=LEN-(int)(p+0.5);脊中含j++)/*列印待執行刻度*/
printf("□");
printf("%.1f%%",(i/progLen)*100);/*計算程序當前進度的百分比*/
Sleep(150);
}
putchar(' ');
getch();
return0;
}

運行結果

❹ C語言如何在終端實現進度條效果

維基網路給出的解釋如下:

標准控制碼是一個標准用於規范控制視頻文本終端和模擬終端上的游標位置,顏色,字體樣式和其他選項的帶內信號(筆者註:用於旦廳規范帶內信號)。這些特定的序列,大都以一個ASCII的 'escape' 字元和一個 '[' 字元開頭,並被嵌入到文本中,終端將這些特定的序列解釋成命令,而不是顯示在屏幕上的文本。

ANSI標准規定 'esc' 字元後面所跟的第一個字元用於標識序列的類型,同時又根據第一個字元的大小將Escape序列分為四個大類:

為了不偏離本文的中心,我們這里只關注當枯裂 'esc' 後面接 '[' 的情況,當模敗隱 'esc'後面接 '[' 時我們稱之為CSI序列。下面給出幾個常用的CSI序列語法(格式中CSI指代esc [)。

案例:實現進度條效果,每秒增長10%

[1] ANSI escape code (http://en.volupedia.org/wiki/ANSI_escape_code)

❺ C語言做一個百分比進度條

1.c和js通信 可以用xml來解決,這個就不詳細講了 2.進度條,使用css百分比做,比如: html code <div id="warp" style="width:100px;height:10px;border:1px solid #eee;background:#000;overflow:hidden"><!-#warp用以包裹進度以及顯示這個進度條-><div id="point" style="width:[color=#ff0000]90%[/color];background:#44a;height:10px;"></div><!-#point利用百分比控制實現和進度條一直的效果,後面需要的是利用js做width的值的賦值操作如果你的c中不斷有當前進度進行輸出,那可以在頁面中不斷調用js函數讀取該輸出變數,然後調整進度條,

❻ C語言中如何控制只在某一個位置列印比如進度百分比數字的顯示。

在TC里用這個gotoxy(int x, int y);自己摸索一下~~

❼ C語言進度條

程序1:#include "stdio.h"
#include <dos.h>
#include <conio.h>
/*去游標函數*/
void no_text_cursor(void)
{
union REGS r;
r.h.ah=1;
r.h.ch=32;
int86(0x10,&r,&r);
}
main()
{
int i;
int bfb;
char b=219;
char c='%';
for(i=1;i<=60;i++)
{ gotoxy(i,1); /*為了能在進度條和百分比之間變動*/
no_text_cursor();
delay(45000);/*前後兩個delay是為了讓滾動更好看,流暢*/
printf("%c",b);
delay(45000);
gotoxy(31,2); /*為了能在進度條和百分比之間變動*/
bfb=((i*10)/6);
printf("%d",bfb);
gotoxy(34,2);
printf("%");
}
printf("\nLoading Successful!");
getch();
}程序2:#include<graphics.h>
main()
{
int gdriver=DETECT,gmod,i;
/*registerbgidriver(EGAVGA_driver);*/
initgraph(&gdriver,&gmod,"");
setlinestyle(0,0,2);
rectangle(3,215,637,250);
setcolor(RED);
sleep(3);
for(i=0;i<632;++i)
{
if(i==631)break;
line(5+i,216,5+i,249);
delay(2888);
}
getch();
closegraph();
} 以上程序均在TC2.0下通過

❽ C語言做一個百分比進度條

<p>您好,sa團隊給出的答案</p> <p>(由於本人不用做百分比進度條,所以從網上找了一個,不知道對不對,僅供參考)</p> <p>#!/bin/sh<br>off (){<br>echo -e "\e[?25l"<br>}<br>on (){<br>echo -e "\e[?25h"<br>}<br>gotoxy (){<br>echo -ne "\e[$1;$2h"<br>}<br>character (){<br>gotoxy 0 0<br>echo "["<br>gotoxy 0 44<br>echo "]"<br>n=2<br>num=0<br>while [ $n != 44 ]<br>do<br>sleep 0.07<br>gotoxy 0 $n<br>echo -en "\e[1;44m \e[0m"<br>gotoxy 0 45<br>echo -n "$num%"<br>num=$(echo "$n * 2.3 + 1" | bc )<br>(( n++ ))<br>done<br>gotoxy 0 45<br>echo -n "100.0%"<br>}<br>clear<br>off<br>character <br>on</p>雹運伍 <p> </p> <p>源或 </p> <p>這里有一個網悄芹址,提供給您(cfm補丁0.2版,增加了進度條,百分比等內容的顯示 </p> <p>): <a href="https://wenwen.sogou.com/login/redirect?url=http%3a%2f%2fclub.noahe.com%2fthread-116262-1-1.html" target="_blank">http://club.noahe.com/thread-116262-1-1.html</a></p>

❾ c語言怎麼用mciSendString來判斷一首音樂的時長,判斷音樂播放狀態,怎麼弄出一個進度條

https://www.cnblogs.com/niuge/p/3394142.html
這裡面有

❿ 請問可不可以用C語言來實現窗體中進度條的設置 windows圖形界面!DOS下的我會!

你可以用c語言創建個windows窗口,然後在調用相應的api來創建個進度條。