- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有下面的程序,
void Print()
{
printf("\nCall from Print\n");
}
int main()
{
FILE * pFile;
char mystring [100];
pFile = freopen ("myfile.txt" , "r", stdin);
if (pFile == NULL)
{
perror ("Error opening file");
}
else
{
if ( fgets (mystring , 100 , pFile) != NULL )
{
freopen("myfile.txt" , "a", stdout);
Print();
printf("Here it is\n");
//puts (mystring);
}
fclose(stdout);
fclose (pFile);
}
printf("Hello World\n");
return 0;
}
现在,当我执行程序时,我无法在控制台窗口中看到输出。所有输出都重定向到 myfile.txt
文件中。我希望输出也应该出现在 console
和 myfile.txt
中。
毕竟 printf("Hello World\n")
没有在控制台中打印出来。如何让它也打印在控制台中?
我正在使用 windows-7,visual studio-2010
最佳答案
freopen("myfile.txt" , "a", stdout);
将使您的stdout
输出到文件myfile.txt
此函数会将控制台的输出重定向到文件 myfile.txt
即使您使用 fclose(stdout);
,这也不会将 stdout 的输出返回到控制台,它只会关闭 myfile.txt
更多详情请引用以下链接Strange behaviour when redirecting stdout in C
为了同时在控制台和文件中获得输出,您必须保持标准输出不变,不要使用 freaopen()
重新打开它,也不要关闭它。并且您必须在文件和标准输出中打印两次消息
关于对 stdin、stdout 和 stderr 的工作方式感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15808664/
我正在尝试学习Rust。我正在阅读一本书online,该书实现了unix程序cat。现在,我试图读取作为像cargo run file1.txt file2.txt这样的参数传递的文件的内容,但是程序
我在 GHC 8.0.1 中遇到了一个带有种类索引 (?) GADT 的奇怪情况,其中在类型与种类签名中引入 foralls 会产生不同的类型检查行为。 考虑以下数据类型: {-# LANGUAGE
我正在使用 Perl 5.10 开发应用程序,HTML::Mason和 Apache 2.2。这是我第一次在大型项目中使用 Perl 5.10。我每隔一段时间就会出现奇怪的行为。应用程序因一个非常奇怪
我正在尝试将文件上传到aws中的rust中,因为我使用的是 rusoto_s3 的s3 rust客户端,当这些部分从单个线程发送时,我设法使分段上传代码正常工作不是我想要的,我想上传大文件,并且希望能
我是一名优秀的程序员,十分优秀!