Форум программистов, компьютерный форум CyberForum.ru

Считывание строки - C++

Восстановить пароль Регистрация
 
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
09.01.2014, 19:53     Считывание строки #1
В общем появилась у меня недавно необходимость чужой код из консоли перевести в форму. Все функции подключил к контролам но 1 строку кода перевести не могу. Программа считывала данные из файла таким образом
C++
1
fread(N, sh, 1, f_begin);
N - char[4]
sh - int
f_begin - FILE
Мне нужно сделать чтобы считывание шло с textEdit.
Данные из textEdit я записал в строку
C++ (Qt)
1
 char *tm = ui->textEdit->toPlainText().toUtf8().data();
но как теперь поместить содержимое char *tm; в char N[4]; таким же образом как шло считывание с файла функцией fread не знаю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 19:53     Считывание строки
Посмотрите здесь:

C++ Считывание строки из файла
считывание строки из файла C++
C++ считывание строки
C++ Считывание строки из файла
C++ считывание строки. С++
Считывание символов из строки C++
Считывание строки с файла C++
Считывание строки до знака '\n' C++
Некорректное считывание строки C++
C++ Считывание пустой строки
C++ Считывание строки из файла
C++ Считывание строки getline

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
09.01.2014, 20:04     Считывание строки #2
Alex566, мм, ну я так понимаю, что sh <= 4 всегда, да? А значит и в tm содержится что-то длины 3 + 1 (для нуль-терминанты). Если так, тогда:
C++
1
strcpy(N, tm);
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
09.01.2014, 20:37  [ТС]     Считывание строки #3
Цитата Сообщение от nexen Посмотреть сообщение
ну я так понимаю, что sh <= 4 всегда, да? А значит и в tm содержится что-то длины 3 + 1 (для нуль-терминанты). Если так, тогда:
sh содержит количество символов в тексте f_begin которое циклично уменьшается на 4, а сам файл может содержать любое количество символов в этом то и проблема. Значит fread(N, sh, 1, f_begin); считывает sh символов из файла f_begin в N? Выходит она считывала последние 4 символа и уменьшалась на 4 чтобы считать следующие 4 символа следующей итерацией?
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
09.01.2014, 20:45     Считывание строки #4
Alex566, если условие sh <= 4 не выполняется, а, допустим:
C++
1
2
3
sh = 10;
char N[4];
fread(N, sh, 1, f_begin);
то это ошибка. Компилятор ничего на это не скажет, да и работать будет нормально, но периодически будет выдавать ошибку. Дело в том, что отведено было всего 4 байта, а считывается 10, т.е. используется не предназначенная для этого память.
Выходит, исходный код неверен
Yandex
Объявления
09.01.2014, 20:45     Считывание строки
Ответ Создать тему
Опции темы

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