当前位置: 首页 > news >正文

网站制造公司wordpress 建站完整视频教程

网站制造公司,wordpress 建站完整视频教程,重庆做优化的网络公司,应用中心软件Format格式化 %1s或者%2s,%3s:取字符串的前1,2或者3位。%*c:屏蔽一个字符。%[A-Z]:取一个A到Z的值。 %[^a-z]:不取a到z的值。 %[^\n]:取非换行之前的值。printf("%5d", a):左边补 格式化:有正则在其中。 int main() {printf("%5d\n&quo…

 Format格式化

%1s或者%2s,%3s:取字符串的前1,2或者3位。%*c:屏蔽一个字符。%[A-Z]:取一个A到Z的值。
%[^a-z]:不取a到z的值。
%[^\n]:取非换行之前的值。printf("%5d", a):左边补

 格式化:有正则在其中。

int main()
{printf("===%5d===\n", 239);printf("===%05d===\n", 239);printf("===%0-5d===\n", 239);printf("===%-5d===\n", 239);printf("===%.5d===\n", 239);printf("===%d\t===\n", 239);printf("===%u===\n", 239);printf("===%o===\n", 239);getchar();return 0;
}

输出: 

===  239===
===00239===
===239  ===
===239  ===
===00239===
===239  ===
===239===
===357===


字符串的标准输入和输出

int scanf(const char* restrict format, ...)

int a, b;
scanf("%d %d", &a, &b)

int printf(const char* format, ...);

int a = 10;
int b = 20;
char* str = "asdfgh";
printf("a = %d, b = %d, str = %s", a, b, str)

sprintf(char* str, const char* format, ...):字符串拼接数值等不同类型。

  • 功能:根据参数 format 字符串来转换并格式化数据,然后将结果输出到str指定的空间中,直到出现字符串结束符'\0'为止。
  • 参数:
    • str:输出字符串首地址。
    • format:字符串格式,用法和printf()一样。
  • 返回值:
    • 成功:
    • 失败:-1
int a, b, value;
char c;
char str[20] = {0};
sprintf(str, "%d %c %d = %d", a, c, b, value);

sscanf(const char *str, const char* format, ...):把值从字符串中提取出来。

  • 功能:从str指定的字符串读取数据,并根据参数format字符串来转换并格式化数据。
  • 参数:
    • str:指定的字符串首地址。
    • format:字符串格式,用法和scanf()一样。
  • 返回值:
    • 成功:参数数目,成功转换的值的个数。
    • 失败:-1
char src[] = "a = 10, b = 20";
int a;
int b;
sscanf(src, "a = %d, b = %d", &a, &b);
printf("a:%d, b:%d\n", a, b);


格式化文件读写

int fprintf(FILE* stream, const char* format, ...);文件。

  • 功能:根据参数format字符串来转换并格式化数据,然后将结果输出到stream指定的文件中,指定出现字符串结束符'\0'为止。
  • 参数:
    • stream:已经打开的文件
    • format:字符串格式,用法和printf()一样
  • 返回值:
    • 成功:
    • 失败:-1
int a = 10;
int b = 20;
fprintf(fp, "%d + %d = %d", a, b, a + b);

int fscanf(FILE* stream, const char* format, ...);文件。

  • 功能:从stream指定的文件读取字符串,并根据参数format字符串来转换并格式化数据
  • 参数:
    • stream:已经打开的文件。
    • format:字符串格式,用法和scanf()一样。
  • 返回值:
    • 成功:参数数目,成功转换的值的个数。
    • 失败:-1。
int a, b, c;
fscanf(fp, "%d %d %d\n", &a, &b, &c);
printf("a = %d, b = %d, c = %d\n", a, b, c);


11+22=
16-12=
17*18=
96/6=
32+47=
56/7=
89*2=
33-10=
32/8=
99/10=

 自己初次编写:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>char ArithmeticOperations[4] = { '+','-', '*', '/' };char GetOperater(char* p)
{for (int i = 0; i < 4; i++){char* op = strchr(p, ArithmeticOperations[i]);if (op != NULL){return *op;break;}}
}int GetResult(int num1, int num2, char op)
{int result = 0;switch (op){case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':result = num1 / num2;break;default:break;}return result;
}
int main()
{FILE *fpr = fopen("F:/Practice/homework", "r");if (!fpr){printf("文件读取失败。");return -1;}char buf[20] = { 0 };char* str[10];for (int i = 0; i < 10; i++){str[i] = (char*)malloc(sizeof(char) * 20);}int i = 0;while (!feof(fpr)){memset(buf, 0, sizeof(buf));  // 防止前一次的赋值,污染本次赋值。char* p = fgets(buf, sizeof(buf), fpr);if (p != NULL && str[i] != NULL){//printf("读取结果:%s\n", p);memcpy(str[i], p, 20);i++;}}fclose(fpr);int LineNum = i;FILE* fpw = fopen("F:/Practice/homework", "w");if (fpw == NULL){perror("fpw open.");return -1;}i = 0;//for (i = 0; i < LineNum; i++)//{//	printf("%s", str[i]);//}while (i<LineNum){char op = GetOperater(str[i]);int num1 = atoi(str[i]);   // 此处提取符号和数字可以通过sscanf来优化。格式化字符串。int num2 = atoi(strchr(str[i], op)+1);   // 指针加1。int result = GetResult(num1, num2, op);char str2[30] = { 0 };sprintf(str2, "%d%c%d%c%d\n", num1, op, num2, '=', result);printf("%s\n", str2);int a = fputs(str2, fpw);if (!a){i++;}}for (int i = 0; i < 10; i++){free(str[i]);  // 指针释放,需要添加,str[i] = NULL;}fclose(fpw);getchar();return 0;
}

二次改写

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{FILE* fpr = fopen("F:/Practice/a.txt", "r");if (!fpr){return -1;}char** buf = (char**)malloc(sizeof(char*) * 100);int a, b;char c;float value;for (int i = 0; i < 10; i++){buf[i] = (char *)malloc(sizeof(char) * 20);fgets(buf[i], 20, fpr);//fscanf(fpr, "%d%c%d=", a, c, b);}//fclose(fpr);if (fclose(fpr) != 0)  // 更正式的关闭方式。{printf("Error in closing file. \n");exit(EXIT_FAILURE);}FILE* fpw;      // 第二种打开文件的方式。if ((fpw = fopen("F:/Practice/a.txt", "w")) == NULL){fprintf(stdout, "Can't open file.\n");exit(EXIT_FAILURE);}for (int i = 0; i < 10; i++){sscanf(buf[i], "%d%c%d=\n", &a, &c, &b);switch (c){case '+':value = a + b;break;case '-':value = a - b;break;case '*':value = a * b;break;case '/':value = a * 1.0 / b;break;default:break;}fprintf(fpw, "%d%c%d=%.2f\n", a, c, b, value);}if (fclose(fpw) != 0)  // 更正式的关闭方式。{printf("Error in closing file. \n");exit(EXIT_FAILURE);}for (int i = 0; i < 10; i++){free(buf[i]);buf[i] = NULL;}free(buf);getchar();return 0;
}


基于结构体的写法:已经很有面向对象类的感觉了

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>struct opter
{int a;int b;char c;float value;
};typedef struct opter opt;int main(int argc, char* argv[])
{opt* p = (opt*)malloc(sizeof(opt) * 10);FILE* fpr = fopen("F:/Practice/a.txt", "r");if (fpr == NULL)return -1;for (int i = 0; i < 10; i++){// 要么是指针写法->,要么是结构体的点。fscanf(fpr, "%d%c%d=\n", &((p+i)->a), &p[i].c, &p[i].b);   // 用->必须写上括号。switch (p[i].c){case '+':p[i].value = p[i].a + p[i].b;break;case '-':p[i].value = p[i].a - p[i].b;break;case '*':p[i].value = p[i].a * p[i].b;break;case '/':p[i].value = p[i].a * 1.0 / p[i].b;break;default:break;}}fclose(fpr);//FILE fpw = fopen("F:/Practice/a.txt", "w");fpr = fopen("F:/Practice/a.txt", "w");   // 要么重新建立一个变量fpw, 要么继续用原来这个fpr。if (!fpr){return -1;}for (int i = 0; i < 10; i++){fprintf(fpr, "%d%c%d=%.2f\n", p[i].a, p[i].c, p[i].b, p[i].value);}fclose(fpr);free(p);p = NULL;getchar();return 0;
}




两个文件先后处理

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main(int argc, char* argv[])
{FILE* fpr = fopen("F:/Practice/a.txt", "r");FILE* fpw = fopen("F:/Practice/b.txt", "w");if (!fpr || !fpw){return -1;}int a, c, d;char b;fscanf(fpr, "%d%c%d=%d", &a, &b, &c, &d);printf("a = %d, b = %c, c = %d, d = %d", a, b, c, d);fprintf(fpw, "%d %c %d = %d", a, b, c, d);fclose(fpr);fclose(fpw);getchar();return 0;
}


 字符串拼接与分割。

int main013()
{char str[] = "相遇在2021";char str2[4];int a;sscanf(str, "%6s%d", str2, &a);  // 一个汉字占用两个字符。printf("str2 = %s, a = %d\n", str2, a);getchar();return 0;
}

http://www.yayakq.cn/news/579685/

相关文章:

  • 两学一做网站条幅asp.net做网站
  • 展示型网站 带后台微信小程序案例源码
  • 柳州团购网站建设五合一网站建设费用
  • 网站开发软件网站开发软件开发工具的选择与评价
  • 网站建设的好处有什么用阜蒙县建设镇官方网站
  • 全国工程造价咨询企业管理系统西安网站seo公司
  • 网站建设需求建议书线上销售平台都有哪些
  • 齐河网站建设电话315晚会 网站建设公司
  • 网站建设的十点优势公众出行服务网站建设
  • 织梦网站后台logo删除产品宣传类网站设计注意
  • 沈阳鹊起网站建设公司越南网站建设
  • 东莞一站式网站推广运营湖北省建设安全管理站网站
  • 什么网站做宣传好大连 商城网站制作公司
  • 巢湖自助建站系统什么网站可以做调查
  • 中国科技成就ppt宁波seo关键词如何优化
  • 广州做贷款有什么网站vue 做pc网站可以吗
  • 找人做jsp网站iis网站跳转
  • 手机网站开发语言选择福建省建设干部培训中心网站首页
  • 昆明 五华 网站建设重庆人才网
  • 便宜自适应网站建设厂家一般使用的分辨率是多少
  • cpa网站怎么做本网站正在建设图片
  • 临沂做企业网站北京平面设计公司排名
  • 动物做logo的网站wordpress修改文章字体颜色
  • 网站建设原则五大原则合肥网站建设教程
  • 西安自助建站做网站响应式企业网站源码
  • 寒亭区住房和城乡建设局网站手册设计网站
  • 网站开发三端指哪三端免费商城网站源码
  • 响应式网站实例青岛新闻最新消息
  • 南城网站优化公司乌海学校网站建设
  • 有哪些做产品产业链分析的网站网站建设试题卷