C 使用fprintf的问题

C 使用fprintf的问题,c,C,以下是我打开的文件的外观: FILE* f = fopen(argv[1], "a+"); 我从PROCESSOR_IDENTIFIER环境变量中读取要获取的值 char env; env = getenv("PROCESSOR_IDENTIFIER"); printf("\nA The processor identifier is: %s\n\n", env); printf可以很好地打印出来。现在,我想将其附加到我的文件末尾: fprintf(f, "%s", env); 但它并没有

以下是我打开的文件的外观:

FILE* f = fopen(argv[1], "a+");
我从PROCESSOR_IDENTIFIER环境变量中读取要获取的值

char env;
env = getenv("PROCESSOR_IDENTIFIER");
printf("\nA The processor identifier is: %s\n\n", env);
printf可以很好地打印出来。现在,我想将其附加到我的文件末尾:

fprintf(f, "%s", env);

但它并没有真正起作用。可能是什么问题?我必须使用循环吗?

函数
getenv
定义为
char*getenv(const char*name)
在stdlib.h中,还要确保在写入文件之前检查getenv是否成功找到环境变量:

char *env;
env = getenv("PROCESSOR_IDENTIFIER");
if (env != NULL) {
    printf("\nA The processor identifier is: %s\n", env);

    fprintf(f, "%s", env);
}

函数
getenv
定义为
char*getenv(const char*name)
在stdlib.h中,还要确保在写入文件之前检查getenv是否成功找到环境变量:

char *env;
env = getenv("PROCESSOR_IDENTIFIER");
if (env != NULL) {
    printf("\nA The processor identifier is: %s\n", env);

    fprintf(f, "%s", env);
}

否…'%s'是字符的错误格式说明符。'printf打印出来很好'-一种UB似乎起作用。请阅读<代码>%s用于以null结尾的字符串,而字符不是<代码>%c表示字符。
char-env;env=getenv(“处理器标识符”)--您确定这是您的实际代码吗?这甚至不应该编译
env
应该是
char*
,而不是
char
。在问题中包含您的实际(复制和粘贴)代码非常重要。当您使用建议的错误修复程序编辑原始问题时,问题的格式将变得不正确,其他人提供的评论也将毫无意义。完全可以在问题后面添加更改,但应保留原始完整编号..'%s'是字符的错误格式说明符。'printf打印出来很好'-一种UB似乎起作用。请阅读<代码>%s
用于以null结尾的字符串,而字符不是<代码>%c表示字符。
char-env;env=getenv(“处理器标识符”)--您确定这是您的实际代码吗?这甚至不应该编译
env
应该是
char*
,而不是
char
。在问题中包含您的实际(复制和粘贴)代码非常重要。当您使用建议的错误修复程序编辑原始问题时,问题的格式将变得不正确,其他人提供的评论也将毫无意义。在问题后面添加更改是完全可以的,但是您应该保留原始内容。您可能需要类似fprintf(f,“%s\n”,env)的内容或对fflush()的调用;确保字符串得到输出。至于
fprintf(f,“%s\n”,env),它只能由op知道,因为它们产生不同的文件。但我同意fflush可以。您可能需要类似于fprintf(f,“%s\n”,env)的内容或对fflush()的调用;确保字符串得到输出。至于
fprintf(f,“%s\n”,env),它只能由op知道,因为它们产生不同的文件。但我同意你的看法。