Весь вопрос в короткой версии:
Я хочу загрузить этот ввод
4
CAAC
28 EAAEB5
F489AD95
, но все, что я могу получить от него:
4
Я пытаюсь сделать из этого ввода следующие параметры: 4
CAAC
28
EAAEB5
F489AD95
--------------- Подробное объяснение с моим кодом ---------------------------
Я новичок в языке C, и япытаясь сделать ввод, чтобы быть в виде строки и работать с ней после ... У меня есть проблема для обработки "Whitespaces"
, таких как ["\n"
, "\t"
и " "
] Вот ввод, который я дална мой компилятор:
4
CAAC
28 EAAEB5
F489AD95
есть куча пробелов, табуляции и т. д. Я хочу сделать, это прочитать его и заменить \ n и \ t (в полноте ниже я пытаюсь игнорировать это, потому что сразу после того, как scanf () находит \ n, он пропускает остальную часть.
Это один из кодов, которые я пробовал сейчас:
#include <stdio.h>
int main()
{
int number;
char chr[200];
// %d -> I know that there should be number at the beginning, so until character / space appears, I want to read the number.
// scanf("%d", &number);
// ignores \n and \t and then puts it in chr
scanf(" %[^\t\n]s", &chr);
// last should be \n so this is just acheck if there is ( its gonna be in if later )
scanf("%c");
printf("\n %s", chr);
printf("\n Heythere");
return 0;
}
Это вывод, который у меня естьполучил:
4
Heythere
Я думал о том, чтобы поставить его в цикл, но проблема в том, что последний чаracter равен "\ n", и он может появляться несколько раз в данной строке.
В настоящее время я пытаюсь найти лучший вариант для scanf () для чтения этих строк и игнорирования новых строк
/////////
Другими словами:
Я пытаюсь сделать из этого ввода следующие параметры: 4
CAAC
28
EAAEB5
F489AD95
Есть идеи, как это исправить, чтобы иметь возможность полностью его буферизовать?(также лучшим ответом, который мне поможет, будет тот, который заменит эти "\ n" и "\ t" одним "" (пробел). Заранее спасибо за ваши ответы (также извините, если это действительно простои отвечай, как миллион раз ... Я застрял здесь на неделю)