在C中创建docx文件时,“文件已损坏”

时间:2013-07-19 06:56:07

标签: c

我正在使用“UNIX”(在我的虚拟机上)并使用“C”生成“.docx”文件,将文件导入Windows后,当我打开文件时,它说“文件已损坏,可以不开放然后它不开放。 我正在使用MS-Word 2010。

以下是我正在使用的代码: -

Write_to_file(){
 FILE *fp;
 if((fp=fopen("hello.docx","w"))==(FILE*)NULL){
  printf("Error opening file");
  return 0;
 }
 fprintf(fp,"Hello World");
 fclose(fp);
}

2 个答案:

答案 0 :(得分:5)

仅使用扩展名(doc docx)不会使文件成为MS Word文件。您的代码只是编写一个文本文件。您可以在Linux下通过file命令检测它。

请参考此http://msdn.microsoft.com/en-us/library/cc313105(v=office.12).aspx,并撰写 REAL MS文档文件。

答案 1 :(得分:4)

doc文件不是简单的文本文件。您想要使用txt格式:

fopen("hello.txt", "w");

要实际读取/写入doc文件,您需要使用专门设计的库来读取它们并编写它们。

The spec for MS-DOC files is pretty lengthy, so I wouldn't implement my own reader/writer if I were you.