當前位置:首頁 » 文件管理 » c語言文件上傳

c語言文件上傳

發布時間: 2024-12-04 10:17:59

『壹』 c語言編程中如何將一個文件中的信息轉入到另一個文件

打開兩個文件,從一個文件讀數據,寫入到另一個文件,例如:

//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
FILE *fp1,*fp2;
char c;
fp1=fopen("dat.txt","r"); /*打開源文件*/
fp2=fopen("tot.txt","w"); /*打開將寫入的文件*/
while ((c=fgetc(fp1))!=EOF) /*將源文件fp1的內容轉存(復制)到目標文件fp2中*/
fputc(c,fp2);
fclose(fp1); /*關閉文件*/
fclose(fp2);
return 0;
}
//---------------------------------------------------------------------------

『貳』 C語言實現從ftp下載、上傳文件

FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為「文傳協議」。
1.C語言可以使用CStdioFile函數打開本地文件。使用類CInternetSession 創建並初始化一個Internet打開FTP伺服器文件。
CStdioFile繼承自CFile,一個CStdioFile 對象代表一個用運行時函數fopen 打開的C 運行時流式文件。
流式文件是被緩沖的,而且可以以文本方式(預設)或二進制方式打開。文本方式提供對硬回車—換行符對的特殊處理。當你將一個換行符(0x0A)寫入一個文本方式的CStdioFile 對象時,位元組對(0x0D,0x0A)被發送給該文件。當你讀一個文件時,位元組對(0x0D,0x0A)被翻譯為一個位元組(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 這幾個CFile 函數。如果在CStdioFile 中調用了這幾個函數,將會出現CNoSupported 異常。
使用類CInternetSession 創建並初始化一個或多個同時的Internet 會話。如果需要,還可描述與代理伺服器的連接。
如果Internet連接必須在應用過程中保持著,可創建一個類CWinApp的CInternetSession成員。一旦已建立起Internet 會話,就可調用OpenURL。CInternetSession會通過調用全局函數AfxParseURL來為分析映射URL。無論協議類型如何,CInternetSession 解釋URL並管理它。它可處理由URL資源「file://」標志的本地文件的請求。如果傳給它的名字是本地文件,OpenURL 將返回一個指向CStdioFile對象的指針。
如果使用OpenURL在Internet伺服器上打開一個URL,你可從此處讀取信息。如果要執行定位在伺服器上的指定的服務(例如,HTTP,FTP或Gopher)行為,必須與此伺服器建立適當的連接。

『叄』 C語言編程實現:將一個文件的內容復制到另一個文件。(詳細點的,考試用。)謝謝!

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#ifdefBUFSIZ

#undefBUFSIZ

#defineBUFSIZ4096

#endif

/*

使用格式:mcpy源文件目標文件

且目標文件和源文件不能一樣,否則會清空文件內容,

源文件必須存在,目標文件可存在也可不存在,如果存在,內容會被覆蓋掉。

*/

intmain(intargc,char**argv)

{

charbuf[BUFSIZ];

intmsglen;

if(argc!=3||strcmp(argv[1],argv[2])==0)

/*argc:命令行模式下,輸入的參數數目。

argv:第一個參數的首地址。*/

{

fprintf(stderr,"******************************** ");

fprintf(stderr,"Pleaseusage:%ssource_filedestination_file Andsource__file ",argv[0]);

fprintf(stderr,"******************************** ");

exit(0);

}

FILE*fp_src,*fp_des;

if((fp_src=fopen(argv[1],"r"))==NULL)

/*為空,則打開失敗*/

{

fprintf(stderr,"open%sfailed! ",argv[1]);

exit(1);

}

if((fp_des=fopen(argv[2],"w"))==NULL)

/*為空,則打開或創建失敗*/

{

fprintf(stderr,"open/create%sfailed! ",argv[2]);

exit(2);

}

while(fgets(buf,BUFSIZ,fp_src)!=NULL)

/*從源文件讀,讀失敗或到達文件尾部時,返回NULL*/

{

if(fputs(buf,fp_des)==EOF)

/*寫入目標文件,寫入失敗時,返回EOF;若成功返回寫入的位元組數*/

{

fprintf(stderr,"%sto%sfailed! ",argv[1],argv[2]);

exit(3);

}

}

printf("%sto%ssuccessful! ",argv[1],argv[2]);

return0;

}

『肆』 如何在unix下,c語言中實現ftp文件傳輸

nt FtpInit(char* Host,char* Account,char* Passwd)
{
short shPortNumber;
long lAddr;
char RecvBuf[1024];
char SendBuf[1024];
int RecvLen,SendLen;

shPortNumber=htons(21);
lAddr=inet_addr(Host);
memset(HostName,0,16);
memcpy(HostName,Host,strlen(Host));
hClient=socket(AF_INET,SOCK_STREAM,0);
if (hClient<0)
{
return -1;
}
if(setsockopt(hClient,SOL_SOCKET,SO_RCVTIMEO,(char *)&rcvtime,sizeof(int)))
{
close(hClient);
return -1;
}

if(setsockopt(hClient,SOL_SOCKET,SO_KEEPALIVE,(char *)&keepalive,sizeof(int)))
{
close(hClient);
return -1;
}
SockAddr.sin_family = AF_INET;
SockAddr.sin_addr.s_addr = lAddr;
SockAddr.sin_port = shPortNumber;

if (connect(hClient,(const struct sockaddr *)&SockAddr,sizeof(SockAddr))<0)
{
close(hClient);
return -1;
}

memset(RecvBuf,0,1024);
if((RecvLen=FtpMatchReceive(hClient,RecvBuf, "220 ",1024))<=0)
{
close(hClient);
return -1;
}
if(SendLen=GetFtpSendBuf("USER",Account,SendBuf,1024)<=0)
{
close(hClient);
return -1 ;
}
if(SendFTPCommand(hClient,SendBuf)!=331)
{
close(hClient);
return -1;
}
if(SendLen=GetFtpSendBuf("PASS",Passwd,SendBuf,1024)<=0)
{
close(hClient);
return -1 ;
}
if(SendFTPCommand(hClient,SendBuf)!=230)
{
close(hClient);
return -1;
}

}
int FtpGetFile(char * FileName)
{
int hListenSocket;
int hDataSocket;
int RetWriteFile;
int ReturnCode;
char RemoteFileName[256];
char RemoteFile[256];
char ExecCommand[256];
char * pcSubDir;

memset(RemoteFileName,0,256);
memset(RemoteFile,0,256);
memset(ExecCommand,0,256);

strcpy(RemoteFileName,FileName);
memcpy(ExecCommand,"CWD ",4);

pcSubDir=strrchr(RemoteFileName,'\\');
if (pcSubDir !=NULL)
{
strncat(ExecCommand,RemoteFileName,RemoteFileName-pcSubDir);
if(SendFTPCommand(hClient,ExecCommand)!=250)
{
close(hClient);
return -1;
}
strcpy(RemoteFile,pcSubDir);
}
else
{
strcpy(RemoteFile,RemoteFileName);
}

if((hListenSocket=CreatListenSocket(hClient))<0)
{
close(hClient);
return -1;
}
if(RequestDataConnection(hClient,hListenSocket)<0)
{
close(hClient);
return -1;
}
memset( ExecCommand,0,256);
memcpy( ExecCommand,"RETR ",5);
strcat( ExecCommand,RemoteFile);
printf("The FileName=%s\n",RemoteFile);
strcat( ExecCommand,"\r\n");

ReturnCode=SendFTPCommand(hClient,ExecCommand);
if(ReturnCode!=150)
{
close(hClient);
return -1;
}
if((hDataSocket=AcceptDataConnection(hListenSocket))<0)
{
close(hClient);
return -1;
}
if((RetWriteFile=WriteFile(hDataSocket,RemoteFile))<0)
{
close(hDataSocket);
close(hClient);
return -1;
}

}

熱點內容
復制廣聯達加密鎖 發布:2024-12-05 02:44:58 瀏覽:195
python調用微博api 發布:2024-12-05 02:42:14 瀏覽:99
lol番茄輔助腳本 發布:2024-12-05 02:42:09 瀏覽:733
智能攝像頭存儲位置 發布:2024-12-05 02:40:36 瀏覽:614
一鍵搭建雲免腳本 發布:2024-12-05 02:35:29 瀏覽:811
有贊php框架 發布:2024-12-05 02:33:58 瀏覽:570
李琦訪問 發布:2024-12-05 02:09:21 瀏覽:799
game96游戲安卓版哪裡下載 發布:2024-12-05 01:59:32 瀏覽:448
量子智能演算法 發布:2024-12-05 01:46:35 瀏覽:82
qt編譯失敗配置沒有改變 發布:2024-12-05 01:45:38 瀏覽:165