学习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了。

你可能感兴趣的:(学习C遇到的问题)