文件操作-以文本形式存储

文件操作-以文本形式存储

1.让用户输入IP(字符串)和端口号(整数),保存到配置文件config.txt。每条信息存储为一行。

2.写程序从配置文件中读取IP和端口号。

#include 
#include 
#include 

int main()
{
	FILE * fp = fopen("E:\\C++programming\\config.txt","wb");
	if (fp == NULL)
	{
		printf("faild to open file!\n");
		return -1;
	}
	
	char ip[16] = "192.16.1.100";
	int port = 8081;


	printf("输入IP:");
	scanf("%s",ip);
	if (strlen(ip) > 15)
	{
		printf("error IP!\n");
		return -1;
	}
	printf("输入端口号:");
	scanf("%d", &port);
	fprintf(fp,"ip=%s\n",ip);        //保存到配置文件config.txt
	fprintf(fp, "port=%d\n", port);  //保存到配置文件config.txt

	fclose(fp);                     

	fp = fopen("E:\\C++programming\\config.txt", "rb");
	if (fp == NULL)
	{
		printf("faild to open file!\n");
		return -1;
	}

	char buf[512] = {0};
	int i = 0;
	char * lines[2];
	char  ip2[16];
	int port2 = 0;
	while(!feof(fp))
	{
		char * line = fgets(buf, 512, fp);
		if (line)
		{
			lines[i] = (char *)malloc(strlen(line)+1);		//内存分配需要加1,保存'\0',
			if (lines[i] == NULL)							//不然释放时会报“ HEAP CORRUPTION DETECTED:after  Normal block”
				return -1;
			strcpy(lines[i++],line);
		}
		
	}
	fclose(fp);

	sscanf(lines[0], "ip=%s",ip2);
	printf("IP:%s\n", ip2);
	sscanf(lines[1], "port=%d",&port2);
	printf("端口号:%d\n", port2);
	free(*lines);
	free(*(lines+1));
	
	return 0;
}



你可能感兴趣的:(文件操作,C/C++)