如何将控制台输出的信息输入到一个txt文件

newfinder 2011-05-26 03:31:25
如题,
在程序中,如何将控制台显示的所有内容都保存到一个文件中????
...全文
1764 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
newfinder 2011-05-26
  • 打赏
  • 举报
回复
对,不知道控制台显示的结果是怎么存储的,应该也是在一个缓冲区吧.就是想把这个缓冲区的信息写入文件中,大家提供的方法,我都试试.
谢谢了。。。。。
llh318724 2011-05-26
  • 打赏
  • 举报
回复
你的意思不就是要写日志嘛!写一个打开文件函数,在所有你觉得需要记录的信息后面,加上写日志就可以了啊!
CandPointer 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 newfinder 的回复:]

谢谢大家这么热情.呵呵
> 这个符号貌似是管道输出.
问题:一个控制台应用程序,可能会显示很多信息(执行的结果).我想保存这些结果(写入一个txt文件).这个功能也是在该程序中实现,可能是在main结束的时候执行.
[/Quote]


我8楼提供足以使用,完全可以保存输出到文件啊

如果,非要用程序实现
那么,你的目标程序不必改动
,再写一个新的程序,十几行代码,里面一个CreateProcess( ...,)来调用你的目标程序

其中的参数 __in LPSTARTUPINFO lpStartupInfo,

typedef struct _STARTUPINFO {
...
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFO, *LPSTARTUPINFO;

其中,可以指定 进程的 输出,输入 cerr, cout, clog 等
CandPointer 2011-05-26
  • 打赏
  • 举报
回复
powershell , bash, cmd等,都可以重定向


//powershell 示例
.\program.exe > log.txt
.\program 2>> error.txt

//也可直接把输出保存到变量里面
$variable = .\program.exe | Out-String

.\program >> log.txt 2>&1
//这个很像bash

.\program | Out-File -Encoding ASCII log.txt
//powershell 的 out-file 可控制 输出的 宽度和编码

newfinder 2011-05-26
  • 打赏
  • 举报
回复
谢谢大家这么热情.呵呵
> 这个符号貌似是管道输出.
问题:一个控制台应用程序,可能会显示很多信息(执行的结果).我想保存这些结果(写入一个txt文件).这个功能也是在该程序中实现,可能是在main结束的时候执行.
sunzongfei 2011-05-26
  • 打赏
  • 举报
回复
输出重定向
小小攻城师 2011-05-26
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
printf("hello world!\n");
return 0;
}

编译这么一个helloworld文件,hello.exe
然后切换到这个hello.exe所在目录
输入命令:
hello.exe > D:\a.txt
然后你打开D盘可以查看a.txt中有打印的消息:hello world
小小蔷薇 2011-05-26
  • 打赏
  • 举报
回复
关注,楼上能说得详细些吗?
小小攻城师 2011-05-26
  • 打赏
  • 举报
回复
用>重定向就可以了
就想叫yoko 2011-05-26
  • 打赏
  • 举报
回复
也可以在cmd下
helloworld.exe > 1.txt
运行程序
不过这样好像就只在1.txt中打印而不在控制台打印了
就想叫yoko 2011-05-26
  • 打赏
  • 举报
回复
可以自己封装下打印函数
在打印的时候让它写文件

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧