Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vladimir22666
0 / 0 / 0
Регистрация: 06.05.2017
Сообщений: 6
#1

Чтение через fscanf_s части строки с пробелом (и запись этой же строки) - C++

08.06.2017, 01:27. Просмотров 117. Ответов 4
Метки нет (Все метки)

нужно записать в файл строку, содержащую через табуляцию int, char[слово], char[слово], char[ЧИСЛО СЛОВО], float, int. Далее необходимо из такой же строки вывести значения в соответствующие int, char итд.
Проблема:
1)для ввода с клавиатуры char[ЧИСЛО СЛОВО] не получается использовать cin.getline(buff, N), эта строка попросту игнорируется. Пока что работет метод повтора cin >> / cin>>, объединения в строку через пробел и присваивания этой строки в buff.
2) проблема посерьёзнее. В результате в файле присутствует примерно такая строка: число \t слово \t слово \t ЧИСЛО СЛОВО \t число \t число.
Проблема в том, что fscan_f("%s", buff) игнорирует пробел между ЧИСЛО СЛОВО, и записывает в строку только ЧИСЛО.
Я, конечно, могу снова повторить двойне чтение, как при вводе с клавиатуры, но, как мне кажется, есть более правильный метод.
Прошу помощи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2017, 01:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение через fscanf_s части строки с пробелом (и запись этой же строки) (C++):

Чтение из файла строки по началу строки или ее части - C++
Всем доброго времени суток! Большая просьба помочь! поступило задание, сделать словарь. Вводишь слов в консоли, а тебе выдает перевод....

Чтение части строки из файла - C++
Приветствую. Прошу помощи в реализации кода: имеется текстовый файл, в котором весь текст написан в одну строку и другой файл, где текст...

Чтение строки из файла и запись (GUI) - C++
Здравствуйте. Собственно находил исходы я на эту тему только для консолек, работаю в визуалке, и когда переделываю код под WinForms то...

Работа с файлами, запись строки в файл и чтение из файла - C++
Короче у меня задание типа записать строку в old.txt, потом считать это, найти самое маленькое слово и удалить его, после чего записать...

Как первые два символа строки переставить в конец этой строки? - C++
Собственно вопрос

Прибавить ко всем элементам каждой строки максимальное значение этой строки - C++
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив, прибавив ко всем элементам каждой строки максимальное...

4
nd2
2389 / 1978 / 696
Регистрация: 29.01.2016
Сообщений: 6,435
08.06.2017, 01:39 #2
Цитата Сообщение от vladimir22666 Посмотреть сообщение
не получается использовать cin.getline(buff, N), эта строка попросту игнорируется.
Распространенные ошибки
0
vladimir22666
0 / 0 / 0
Регистрация: 06.05.2017
Сообщений: 6
08.06.2017, 01:53  [ТС] #3
UPD
узнал про fscanf_S("%c"). Но появилась другая проблема, теперь при, например, %20c, записываются символы из следующего "раздела". Нужно как-то ограничить функцию, чтобы она не вылезала за тбуляцию

Добавлено через 57 секунд
Цитата Сообщение от nd2 Посмотреть сообщение
не получается использовать cin.getline(buff, N), эта строка попросту игнорируется.
Распространенные ошибки
Как раз
cin.sync();
cin.getline(rex->Value, 20);
и игнорируется
0
nd2
2389 / 1978 / 696
Регистрация: 29.01.2016
Сообщений: 6,435
08.06.2017, 02:08 #4
Цитата Сообщение от vladimir22666 Посмотреть сообщение
cin.sync();
Не используй это. Может не работать. Там другие способы есть.
1
vladimir22666
0 / 0 / 0
Регистрация: 06.05.2017
Сообщений: 6
08.06.2017, 10:38  [ТС] #5
Цитата Сообщение от nd2 Посмотреть сообщение
Не используй это. Может не работать. Там другие способы есть.
примечательно, что строка НЕ игнорируется, если написать, например, cin.getline(buff, 20, ' ');
Но тогда сходит с ума следующий ввод, несмотря на cin.sync

Добавлено через 5 минут
UPD
Помог cin.ignore(1, '\n'); перед getline.
Спасибо.
Теперь другая проблема, чтение числа и слова в одну строку.

Добавлено через 8 часов 18 минут
Проблема решилась.
Перешел на бинарный файл вместо текстового.
0
08.06.2017, 10:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2017, 10:38
Привет! Вот еще темы с ответами:

Поменять первый элемент строки с максимальным элементом этой строки - C++
Условие: поменять максимальный элемент строки с первым элемент строки матрицы... Вообщем ,как я понимаю,я нахожу максимальный элемент...

Функция разделения строки в массив отдельных частей этой строки - C++
Помогите написать функцию, которая на вход принимает строку типа String и возвращает уже массив String содержащий отдельные части этой...

В конец каждой строки текстового файла дописать количество символов этой строки - C++
Помогите, нужно : "В конец каждой строки текстового файла дописать количество символов этой строки". Получается только в начало, не знаю...

Каждый элемент соответствующей строки матрицы разделить на сумму элементов этой строки (Pascal -> C++) - C++
Здравствуйте, есть такая задача: Задан двумерный массив NxN вещественных чисел, N=5. Необходимо каждый элемент соответствующей строки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru