У меня есть код, который читает ввод из файла xdr
и показывает результат на оболочке, но я предпочитаю, чтобы программа сохраняла результаты в формате, который я могу читать с помощью 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);
}
Как вы можете увидеть файл печатает результат, но я предпочитаю, чтобы она сохраняет его в файле, который я могу манипулировать и читать нормально.
Большое спасибо за вашу помощь.
, когда я пытаюсь это я получаю следующее сообщение об ошибке : decoder.c: 'In function 'main': decoder.c: 14: 9: ошибка: несовместимые типы при назначении типа 'FILE' из типа 'struct FILE *' decoder.c: 15: 12 : error: недопустимые операнды в двоичный код == (есть 'FILE' и 'void *') decoder.c: 27: 5: ошибка: несовместимый тип для аргумента 1 из 'fprintf' /usr/include/stdio.h: 357: 12: note: expected 'struct FILE * __restrict__', но аргумент имеет тип 'FILE' decoder.c: 33: 1: ошибка: несовместимый тип для аргумента 1 из 'fclose' /usr/include/stdio.h : 238: 12: note: expected 'struct FILE *', но аргумент имеет тип 'FILE'' –
Я РЕШИТЬ проблему @Chinna, я должен объявить файл в одной строке и: я не могу объявить много файлов в те же строки: 'FILE * a1, a2, ... an;' я должен объявить что-то вроде: 'FILE * a1; FILE * a2; ... ' –
@PanichiPattumerosPapaCastoro Извините за это, я уже посмотрел. Но вы можете объявить, как этот файл * fp, * fpwrite – Chinna