将字符数组写入C中的文件

时间:2012-09-26 18:54:56

标签: c pointers file-io char

此代码是否适合将字符数组(由char指针引用)写入文件?

const char* charBuf;

FILE *outputFile = fopen("output", "a");
fprintf(outputFile, "%s\n", *charBuf);
fclose(outputFile);

假设buf指向某个字符数组。

3 个答案:

答案 0 :(得分:0)

文件模式需要引用:

File *outputFile = fopen("output", "a");

除非您使用模式定义了c-string a

假设您已将某些值存储到charBuf中,则必须使用fprintf中的字符串。 *charBuf指的是该字符串中的第一个字符。

fprintf(outputFile, "%s\n", charBuf);

您需要显示更多代码才能获得更好的答案。

答案 1 :(得分:0)

它很接近,但你在fprintf(...)中缺少一个逗号,并且你使用了某种未在任何地方声明的变量charBuf

我猜你打算为这个问题写一个“简短的完整例子”,我赞赏你做了同样多的事情,除了它有助于实际测试你的例子,把问题集中在你的部分上感兴趣,而不是让很多人指出错别字等。

答案 2 :(得分:0)

您应该确保文件打开成功。

FILE *outputFile = fopen("output", "a");
应该跟着

进行错误检查:

#include <errno.h>
#include <string.h>
if ( FILE == NULL )
{
   printf("ERROR: could not open output\n");
   printf("the error was: %s\n",strerror(errno));
   return;
}