学习C遇到的问题

1.警告 C6054 可能没有为字符串“str”添加字符串零终止符。

  char str[100];
  scanf_s("%s", str, 100);
  fprintf(fp, str);

这里应该对c进行初始化

  char str[100] = {0};

这样警告就消失了。
2.警告 C6387 “fp”可能是“0”: 这不符合函数“fprintf”的规范。

  char str[100] = {0};
  scanf_s("%s", str, 100);
  fprintf(fp, str);

这里的警告是因为没有做判空处理

  char str[100] = {0};
  scanf_s("%s", str, 100);
  if (fp == NULL) {
    return -1;
  }
  fprintf(fp, str);

这样警告就消失了。
3.scanf_s输入字符串包含空格时,会只输出到空格之前

  char str[100] = {0};
  scanf_s("%s", str, 100);

这里的解决方案是使用gets_s

  char str[100] = {0};
  gets_s(str, 100);

这样就可以正常输入空格了。
4.循环输出文件内容

  while (fgets(str, 100, fp) != NULL) {
      printf("text is %s", str);
  }

这样就OK了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容