1

我正在使用“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);
}
4

2 回答 2

5

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

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

于 2013-07-19T07:12:59.343 回答
4

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

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

要实际读取/写入doc文件,您需要使用专门设计用于读取和写入文件的库。

MS-DOC 文件的规范很长,所以如果我是你,我不会实现自己的阅读器/编写器。

于 2013-07-19T06:59:51.480 回答