【发布时间】:2012-09-17 00:55:18
【问题描述】:
我正在尝试使用以下 C 代码打印出我传入的数组。它应该在每一行以十六进制格式输出文本,并且打开文件没有问题。当我第一次编写它时,我没有遇到任何问题,我打开了输出文件,我的数组就在那里。我更改了fileOutName 参数,现在我无法让它打印出任何我尝试将它改回来的东西以及其他一些东西,但似乎没有任何效果。此外,当我调试时,pOutfile 似乎是一个错误的指针,但就像我说的那样,它仍然会创建文件,只是不会在其中写入任何内容。任何帮助,将不胜感激。谢谢
printoutput(int output[], char * fileOutName){
int i = 0;
FILE * pOutfile;
pOutfile = fopen( fileOutName, "w" );
while(output[i] != 0){
fprintf( pOutfile, "0x%0.4X\n", output[i] );
i++;
}
}
【问题讨论】:
-
总是刷新 :-)
fflush(pOutfile); -
同时检查
fopen的返回。这是几乎必须处理错误的 API 案例之一。它们非常常见(例如没有写入权限、缺少媒体、文件已经存在但被锁定、应用程序不允许使用的神奇文件名(例如 Windows 中的 /proc 或 PRN))。