Когда я пытаюсь использовать fscanf для чтения текстового файла, который содержит PIZZA CHIPS BURGERS
как одну из строк. Я пытаюсь добавить их к переменной, но вместо этого она принимает только одну букву за раз.fscanf проблемы, принимая char время
if (infile) {
while (fscanf(infile, "%c", &cit) > 0) {
printf("%c\n",cit);
Как заставить его взять слово PIZZA вместо P I Z Z A?
Я не хочу быть грубым, но не использую '% c'. Используйте ''% s "' для одной строки. – squiguy
Вы должны узнать больше о 'scanf' и его кодах форматирования. В ''% c ''' c' означает «символ», т. Е. Он считывает по одному символу за раз. Если вы хотите прочитать целую строку, вы должны использовать ['fgets'] (http://en.cppreference.com/w/c/io/fgets). –
@JoachimPileborg: вам разрешено использовать, например, '% 255c', и он будет читать 255 символов (без пропуска ведущего пробела) плюс конечный нуль, независимо от пробелов, строк новой строки и т. Д. Конечно, значение по умолчанию для'% c' эквивалентно '% 1c', тогда как значение по умолчанию для'% s' - неопределенное количество символов (и оно пропускает начальное свободное пространство и останавливается в первом пробеле после начального пробела). Итак, да, вы обычно используете формат '% c', и он читает один символ, но это не единственный способ его использования. –