Я программирую для универа. В настоящее время у меня есть функция для моего потребительского потока, но проблема сейчас не устранена. Проблема в том, что вместо проверки равенства содержимого (arg-> lineF1 и arg-> lineF2) я хотел бы провести l oop через каждую из их строк (учитывая, что arg-> lineF1 и arg-> lineF2 являются массивом символов), и для проверки равенства строк я пробовал некоторые вещи, но они пока не работают.
Я должен указать, что решения, которые я нашел для этих проблем, не работали (попытка strtok завершилась неудачно, попытка зацикливания, но я не получал пустых строк).
void * fonctionConsummer(void * args){
struct argumentThreadConsummer *arg = (struct argumentThreadConsummer *)args;
//-----------------LINE BY LINE CHECKING------------------------------------
void * fonctionConsummer(void * args){
struct argumentThreadConsummer *arg = (struct argumentThreadConsummer *)args;
//-----------------LINE BY LINE CHECKING------------------------------------
int counter = 0;
const char s[2] = "\n";
char *lineF1;
char *lineF2;
lineF1 = strtok(arg->lineF1,s);
lineF2 = strtok(arg->lineF2,s);
while(lineF1 != NULL || lineF2 != NULL){
printf("%d ", counter);
printf("Line F1 %s\n" , lineF1); // Add the new line character here since it is removed from the lineF1ization process
printf("Line F2 %s\n" , lineF2); // Add the new line character here since it is removed from the lineF1ization process
counter++;
lineF1 = strtok(NULL, s);
lineF2 = strtok(NULL, s);
}
//---------------------------------------------------------------------------
if(strcmp (arg->lineF1, arg->lineF2) == 0){
printf("\nLes fichiers ont le meme contenu\n");
pthread_exit(0);
}
printf("\nLes fichiers n'ont pas le meme contenu\n");
pthread_exit(0);
}
Содержимое двух файлы:
вывод:
Дон Не понимаю, почему я получаю нулевое значение от F2 (во второй итерации)
Заранее спасибо за помощь, я новичок в C программировании.