0

我目前正在处理文件 I/O,并尝试使用此功能:

fprintf (FILE *pFile, char *pFormat, <variable list>);

用我的变量

fprintf ( filePtr, "\"%s\"n", myarray );

我的编译器发出警告,warning: format '%s' expects a matching 'char *' argument但我已声明myarraychar *myarray = "This is a string". 谁能告诉我出了什么问题?我的代码是:

#include <stdio.h>
int main ()
{
FILE *filePtr;
char *myarray = "This is a string";

if ((filePtr = fopen("sample.dat", "w")) == NULL) {
   printf ("File could not be opened.\n");
} else {
   printf ("This will print the string onto file:\n");

   while (!feof(filePtr)) {
      fprintf ( filePtr, "\"%s\"", myarray );
   }
}
fclose (filePtr);
return 0;
}
4

1 回答 1

1

我试图用 gcc 编译,它发现了另一个问题 - fopen 中缺少参数:

 if ((filePtr = fopen("sample.dat")) == NULL) {

所以,需要使用:

 if ((filePtr = fopen("sample.dat", "r")) == NULL) {

此后,代码编译没有问题。编译器版本:

gcc version 4.2.1 20070831 patched [FreeBSD]
于 2013-10-11T11:45:45.563 回答