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

fgets и CString - C++

Восстановить пароль Регистрация
 
SAkonst
 Аватар для SAkonst
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 19
10.03.2012, 14:10     fgets и CString #1
Здравствуйте,

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

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

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

Заранее спасибо.))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2012, 14:10     fgets и CString
Посмотрите здесь:

как использовать getline и fgets? C++
функция fgets C++
C++ Как использовать функцию fgets?
[c++][fgets] чтение файла построчно ? C++
Использование оператора fgets C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
10.03.2012, 15:01     fgets и CString #2
чем не устраивает getline? и почему бы не использоваться просто string?
SAkonst
 Аватар для SAkonst
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 19
10.03.2012, 15:56  [ТС]     fgets и CString #3
Поясните, пожалуйста:

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

#include <iostream>
#include <string>

Этих не хватает.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.03.2012, 15:59     fgets и CString #4
Цитата Сообщение от SAkonst Посмотреть сообщение
string это класс? Какой header подключать?
какой header подключать для getline?
<string>
SAkonst
 Аватар для SAkonst
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 19
10.03.2012, 16:33  [ТС]     fgets и CString #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> компилятор пребывает в полной уверенности, что он не знает этих функций?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.03.2012, 16:35     fgets и CString #6
Это стандартный хидер и все классы и функции из него находятся в пространстве имен std.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2012, 16:39     fgets и CString
Еще ссылки по теме:

Как детектировать EOF с fgets/gets C++
Не работает fgets C++
Использование функции fgets C++

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

Или воспользуйтесь поиском по форуму:
SAkonst
 Аватар для SAkonst
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 19
10.03.2012, 16:39  [ТС]     fgets и CString #7
Кстати, вопрос вдогонку.
Почему не работает fscanf (Logfile, "%s[\n\r]", String);?
fprintf прекрасно ест и перевод строки и возврат каретки.
Yandex
Объявления
10.03.2012, 16:39     fgets и CString
Ответ Создать тему
Опции темы

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