Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
SAkonst
2 / 2 / 0
Регистрация: 11.02.2012
Сообщений: 19
#1

fgets и CString

10.03.2012, 14:10. Просмотров 972. Ответов 6
Метки нет (Все метки)

Здравствуйте,

У меня возник вопрос, проконсультируйте, пожалуйста, что можно сделать в этой ситуации?

Нужно прочитать строчку целиком из файла. Насколько я понял fscanf целиком строчку запомнить не может (возможно я не умею пользоваться этой функцией).
Использую fgets. Но fgets не дружит с классом CString, ему char подавай. Но вводить переменную char не хочется, потому что придется ему давать ограниченный размер, а длина строки заранее неизвестна. Давать размер char гарантированно больший чем длина строки (к примеру char String[500]) мне кажется не красиво.

Как можно выкрутится?

Заранее спасибо.))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2012, 14:10
Ответы с готовыми решениями:

Не работает fgets
Код еще не написан, но появилась какая-то проблема...ЧТо я делаю не так? ...

Fgets некорректный результат
#include <iostream> #include <cstring> #include <cstdio> using namespace...

Использование функции fgets
Передо мной встала следующая проблема - не могу понять, как работает функция...

Использование оператора fgets
Помогите решить задачу, пожалуйста, с использованием функции fgets. В...

Stdio с fgets, stdin
Здравствуйте, нужна помощь с библиотекой stdio, проблема заключается в том, что...

6
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
10.03.2012, 15:01 #2
чем не устраивает getline? и почему бы не использоваться просто string?
0
SAkonst
2 / 2 / 0
Регистрация: 11.02.2012
Сообщений: 19
10.03.2012, 15:56  [ТС] #3
Поясните, пожалуйста:

string это класс? Какой header подключать?
какой header подключать для getline?

#include <iostream>
#include <string>

Этих не хватает.
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
10.03.2012, 15:59 #4
Цитата Сообщение от SAkonst Посмотреть сообщение
string это класс? Какой header подключать?
какой header подключать для getline?
<string>
0
SAkonst
2 / 2 / 0
Регистрация: 11.02.2012
Сообщений: 19
10.03.2012, 16:33  [ТС] #5
К сожалению, этих header'ов не хватает. Что string, что getline "identifier is undefined".
Аппликацию пишу используя MFC на VS2010

Верна ли эта часть кода? (Взял с примера getline)
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include "afxdialogex.h"
#include <istream>
#include <string>
 
string String
 
FILE *Logfile;
while (! feof (Logfile))                 // пока не закончится файл копировать строку в String
            Logfile.getline(String, (sizeof(String)), "\n")
также наткнулся в примерах на такую трактовку:
C++
1
2
  string str;
   getline(cin,str);
Что из этого есть верно и туда ли я вообще смотрю? Может getline нужно использовать по другому?

И почему несмотря на подключенный <string> компилятор пребывает в полной уверенности, что он не знает этих функций?
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
10.03.2012, 16:35 #6
Это стандартный хидер и все классы и функции из него находятся в пространстве имен std.
0
SAkonst
2 / 2 / 0
Регистрация: 11.02.2012
Сообщений: 19
10.03.2012, 16:39  [ТС] #7
Кстати, вопрос вдогонку.
Почему не работает fscanf (Logfile, "%s[\n\r]", String);?
fprintf прекрасно ест и перевод строки и возврат каретки.
0
10.03.2012, 16:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2012, 16:39

Как использовать функцию fgets?
Люди прочитал тут про функцию fgets() но как то понять до конца не могу...

Как использовать getline и fgets?
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using...

Как детектировать EOF с fgets/gets
Проблема в определении: Файл1: строка1 строка2 EOF Файл2: строка1...


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

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

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