У меня проблема, которую я не могу понять с помощью printf.Я впервые сталкиваюсь с этой проблемой, так что я уверен, что это что-то наивное, но, несмотря ни на что, я не могу решить ее сам ... может быть, просто потому, что я устал: fprintf (и я нашелэто верно и для printf) правильно печатает только первый аргумент, из второго он будет печатать только «0» для чисел и «(null)» для строк
Вот соответствующий код:
#include <math.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void printInputStream(MatePair* inputStream, char* leftFile, char* rightFile){
MatePair* iterator = inputStream;
FILE* outLeft = fopen(leftFile, "w");
FILE* outRight = fopen(rightFile, "w");
while (iterator->leftRow != MATEPAIR_STOP){
fprintf(outLeft, "%d: \n", iterator->leftRow);
fprintf(outLeft, "%s \n", iterator->leftDNA);
fprintf(outLeft, "%d: %s \n", iterator->leftRow, iterator->leftDNA);
iterator++;
}
fclose(outLeft);
fclose(outRight);
}
Вот начало вывода:
48:
NAATAGACCTATATCCTGTACCCAAACAGAAGACAGAGGATTAACCAAACTCTT
48: (null)
44:
NTAGCCATCTTAGACACATGAATATCTTGGGTCACAACTCATACCTCAACAAAA
44: (null)
40:
NAAAATAAGGGGTATACTCGCTTCGGGGCCCCATTTGGCCTCCAAAAGGGGGCG
40: (null)
36:
NTCTATCTTGCTCGAGAGAAAGGGTTGCCTTAGGGTTTTTTGGGGGGGGCTGTA
36: (null)
32:
NCTATAGAAATTTCCCATACCAACTAGACATTTATCTTCCTGTTTTTTTCCGCC
32: (null)
Как вы можете видеть, я печатаю каждый член массива дважды: один раз для каждого аргумента и оба аргумента вместе.Данные в порядке, на самом деле с первым методом все в порядке, а со вторым выводится только первый аргумент.Любая идея?Заранее спасибо