繁体   English   中英

如何在C程序中的记事本中打开文本文件?

[英]How to open a text file in notepad in a C program?

我正在尝试使用winapi在ac程序中完成操作后向用户显示一个文本文件,但我希望使用记事本(或默认的文本处理器应用程序)打开该文件。 如何使用winapi做到这一点(使用窗口的默认应用程序打开文本文件)?

您正在寻找ShellExecute() ,例如:

#include <shellapi.h>

ShellExecute(NULL, NULL, "C:\\path\\to\\myfile.txt", NULL, NULL, SW_SHOWNORMAL);

给定文件test.txt ,您可以使用以下命令在Windows的notepad显示该文件:

#include <stdlib.h>  

int main () {
    system ("notepad test.txt");
    return 0;
}

如果可以确定程序默认为cmd shell,则可以说system ("test.txt") ,并且文件将在设置为默认文本编辑器的任何一个中打开,但是指定该编辑器更为安全,因为它处理诸如Cygwin下正在编译的程序的情况,其中默认外壳程序为sh ,当您在命令提示符下提供文件名时,默认情况下不会打开文本文件。

如果不能确定您的程序将始终在Windows上编译,那么我将推荐@Remy Lebeau概述的ShellExecute()解决方案。 包含#include <shellapi.h>和对ShellExecute()的调用将无法在非Windows系统上编译(从而抢占错误),而我的解决方案在非Windows系统上编译,但在在system()调用时运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM