> C语言来直接上传文件
实现HTTP协议Get、Post和文件上传功能,使用libcurl接口实现- https://blog.csdn.net/breaksoftware/article/details/45874197
借助开源的libcurl库,我们可以容易地实现这个功能。Libcurl是一个免费易用的客户端URL传输库,主要功能是用不同的协议连接和沟通不同的服务器,libcurl当前支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP,IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet andTFTP。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证等。
c代码实现链表的操作函数 增减删改- https://blog.csdn.net/weixin_40928253/article/details/80787158
C语言中怎样调用其他文件定义的结构体- https://blog.csdn.net/Fortware/article/details/44208309?locationNum=10
###########################文件的创建与删除
#include<stdio.h>int main()
{
char year[10],month[5],day[5];
printf("输入年、月、日:\n");
gets(year);
gets(month);
gets(day);
//保存用fwrite()来完成,创建用fopen()来完成
char file_name [256] = {0};
printf("输入要建立的文件名:");//D:\workplace_c\c_operate\create_file.c
gets(file_name);
FILE *fp=fopen(file_name,"at+");//创建用fopen()
if(fp==NULL)
{
printf("can't create file!");
return 0;
}
fprintf(fp,"%s年%s月%s日",year,month,day);
fclose(fp);
return 0;
}
#创建
#include <stdio.h>
#include <direct.h> //用 _mkdir()创建一个文件夹(目录)
int main()
{
_mkdir("D://workplace_c//c_operate//test"); //用 _mkdir()创建一个文件夹(目录)
char c;
//FILE *fin, *fout;
FILE *fin = fopen("D://workplace_c//c_operate//test//a.txt","at+");//创建一个文件
FILE *fout;
if(fin == NULL) {
printf("I'm so sorry,Open file error.\n");
}
if((fout = fopen("D://workplace_c//c_operate//test//a.txt","w")) == NULL) {
//以 w 方式,只能用于往文件中写,如果不存在,则以指定的文件名新建一个文件
printf("I'm so sorry,Open file error.\n");
}
while((c = fgetc(fin)) != EOF)
fputc(c,fout);
fclose(fin);//关闭
fclose(fout);
return 0;
}
#删除
#include <stdio.h>
int main()
{
if(remove("D://workplace_c//c_operate//test//a.txt")){
printf("Could not delete the file &s \n","1.txt");
}else{
printf("OK \n");
}
return 0;
}
###########################文件的读写
写文件
#include <stdio.h>
int main()
{
int num;
char name[5];
FILE *fp;
if ((fp = fopen("E://workplace_c//test//a.txt", "w")) == NULL)
printf("cannot open file!\n");
scanf("%d %s",&num,name);
fprintf(fp, "%d %s", num, name);
fflush(fp); //数据刷新 数据立即更新
fclose(fp);
if ((fp = fopen("E://workplace_c//test//a.txt", "w")) == NULL)
printf("cannot open file!\n");
fwrite(&num, sizeof(int), 1, fp);
fwrite(name, sizeof(char), 5, fp);
fflush(fp); //数据刷新 数据立即更新
fclose(fp);
}
写int数据写到文件
#include <stdio.h>
#include <stdlib.h>
int main ()
{
//可以先sprintf(str,"%f",i),转成字符串,将str用fwrite写入文件。但这样再去读这些文件,需要再次将字符串转换成数字
FILE * pFile;
int buffer[] = {1, 2, 3, 4};
//b是以二进制形式写的,所以打开肯定是乱码形式
if((pFile = fopen ("E://workplace_c//test//a.txt", "wb"))==NULL)
{
printf("cant open the file");
exit(0);
}
//可以写多个连续的数据(这里一次写4个)
fwrite (buffer , sizeof(int), 4, pFile);
fclose (pFile);
return 0;
}
读取int数据
#include <stdio.h>
#include <stdlib.h>
int main () {
FILE * fp;
int buffer[4];
if((fp=fopen("E://workplace_c//test//a.txt","rb"))==NULL)
{
printf("cant open the file");
exit(0);
}
if(fread(buffer,sizeof(int),4,fp)!=4) //可以一次读取
{
printf("file read error\n");
exit(0);
}
for(int i=0;i<4;i++)
printf("%d\n",buffer[i]);
return 0;
}
#########写结构体数据到文件
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
int age;
char name[30];
}people;
int main ()
{
FILE * pFile;
int i;
people per[3];
per[0].age=20;strcpy(per[0].name,"li");
per[1].age=18;strcpy(per[1].name,"wang");
per[2].age=21;strcpy(per[2].name,"zhang");
if((pFile = fopen ("E://workplace_c//test//a.txt", "wb"))==NULL)
{
printf("cant open the file");
exit(0);
}
for(i=0;i<3;i++)
{
if(fwrite(&per[i],sizeof(people),1,pFile)!=1)
printf("file write error\n");
}
fflush(pFile);
fclose (pFile);
return 0;
}
读结构体数据
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
int age;
char name[30];
}people;
int main () {
FILE * fp;
people per;
if((fp=fopen("E://workplace_c//test//a.txt","rb"))==NULL)
{
printf("cant open the file");
exit(0);
}
while(fread(&per,sizeof(people),1,fp)==1) //如果读到数据,就显示;否则退出
{
printf("%d %s\n",per.age,per.name);
}
fclose (fp);
return 0;
}
C语言中将结构体写入且读文件- http://blog.csdn.net/mbshqqb/article/details/52825696