0
我有一个代码从xdr
文件读取输入并在shell上显示结果,但我更喜欢程序将结果保存为我可以用geany或nano或其他人读取的格式程式。 程序:从打印变为写入文件c
#include <stdio.h>
#include <stdlib.h>
#include <rpc/rpc.h> /* xdr is a sub-library of rpc */
#pragma comment(lib, "Ws2_32.lib") // Library for ntohl and htonl
main()
{
// Reopens stdin to be the same input stream but in binary mode
XDR xdrs;
long i, j;
FILE* fp;
fp = fopen("file.txt", "rb+");
xdrstdio_create(&xdrs, fp, XDR_DECODE);
for (j = 0; j < 100; j++)
{
if (!xdr_long(&xdrs, &i)) {
fprintf(stderr, "failed!\n");
exit(1);
}
printf("%ld ", i);
}
printf("\n");
exit(0);
}
正如你所看到的文件打印的结果,但我更喜欢它保存它,我可以操作和正常读取的文件。
非常感谢您的帮助。
当我尝试这方面,我收到以下错误消息输出重定向到文件:decode.c:'in'main': decoder.c:14:9:错误:从类型'struct FILE *'分配类型'FILE'时的不兼容类型 decoder.c:15:12 :error:无效的操作数为二进制==(有'FILE'和'void *') decoder.c:27:5:error:'fprintf'参数1的不兼容类型 /usr/include/stdio.h: 357:12:note:expected'struct FILE * __restrict__'but argument is of'FILE' decoder.c:33:1:error:'fclose'参数1的不兼容类型 /usr/include/stdio.h :238:12:note:expected'struct FILE *'but argument is of'FILE'' –
我解决了问题@Chinna,我必须在一行中声明一个文件,并且:我不能在相同的行:'FILE * a1,a2,... an;'我必须声明如下:'FILE * a1; FILE * a2; ...' –
@PanichiPattumerosPapaCastoro对不起,我看着它。但你可以声明像这样的文件* fp,* fpwrite – Chinna